os.listdir(path=』.』)
以list形式返回路徑下的所有檔名,傳入path時要注意一點,路徑中的反斜線最好使用兩個,使用乙個反斜線加字母容易產生反義歧義
執行結果:
注意這個list是無序的
python os官方文件
sort():
該函式可以給陣列,鍊錶list或者向量排序,用法:
sort(first_pointer,first_pointer+n,cmp)
cmp:可以不填,預設按陣列公升序排列,也可以定義排序函式,改排序方式為降序
實現原理:sort不是簡單的快速排序,它對普通的快速排序進行了優化,此外,它還結合了插入排序和堆排序。系統會根據你的資料形式和資料量自動選擇合適的排序方法,這並不是說它每次排序只選擇一種方法,它是在一次完整排序中不同的情況選用不同方法,比如給乙個資料量較大的陣列排序,開始採用快速排序,分段遞迴,分段之後每一段的資料量達到乙個較小值後它就不繼續往下遞迴,而是選擇插入排序,如果遞迴的太深,演算法會選擇堆排序。
#include#include#includeusing namespace std;
int main();
sort(test.begin(),test.end());
for(int i=0;i預設排序是從小到大,可以定義cmp函式使得排序變為從大到小:
#include#include#includeusing namespace std;
bool cmp(int a,int b)
int main();
sort(test.begin(),test.end(),cmp);
for(int i=0;i參考:
copy()和deepcopy():
copy只拷貝父物件,不會拷貝物件內部的子物件(例如list內巢狀的list)
deepcopy會拷貝父物件及其子物件
import copy
a=[1,2,[1,2]]
b=copy.copy(a)
c=copy.deepcopy(a)
print(a)
print(b)
print(c)
輸出結果:
[1, 2, [1, 2, 3], 3]
[1, 2, [1, 2, 3]]
[1, 2, [1, 2]]
import copy
a=[1,2,[1,2]]
b=copy.copy(a)
c=copy.deepcopy(a)
print(id(a))
print(id(b))
print(id(c))
print(id(a[2]))
print(id(b[2]))
print(id(c[2]))
輸出:2311110878600
2311111048264
2311111048328
2311110991560
2311110991560
2311111048008
可以看出list中巢狀的list在copy後新的變數b中記憶體位址不變,而在deepcopy後新的變數c中記憶體位址改變。
注意copy或者deepcopy對不可變物件(數字或者元組等)使用時並不會建立新的記憶體位址,而是和賦值類似,將兩者指向同一塊記憶體位址。
參考:
python中的各個模組
collection模組 python中的擴充套件資料模組 namedtuple 生成可以使用名字來訪問元素內容的tuple from collections import namedtuple point namedtuple point x y 必須起名字 point p point 1,2 p...
各個網路模組
強聯網 必須輸入使用者名稱和密碼等伺服器確認,才可以進入遊戲。面板操作登陸 loginctrl.instance.login mloginaccountinput.value,mloginpassinput.value 驗證登入名和登入密碼control控制 下面的方法會在update中執行 登陸錯...
OpenCV各個模組介紹
對於初學opencv的我來說,最頭疼和無法下手的就是,都有什麼庫,那些庫都是幹什麼的,怎麼用,我想很多人應該和我一樣,我覺得最重要的就是需要先知道opencv有哪些庫,都是幹什麼的。在我們安裝opencv的位址下,可以看到opencv2中包含以下庫檔案,下面就是opencv的所有模組介紹,按照順序來...