collections模組
提供了一些額外的資料型別,供我們使用。
namedtuple:命名元組
from collections importdeque:雙向佇列namedtuple
#命名元組 namedtuple(typename, field_names) typename元組的名稱 field_names元組中元素的名稱
ret = namedtuple('
zxc', ['
x', 'y'
])print(ret) #
p = ret(1, 2) #
按順序新增元素
p1 = ret(x=3, y=4) #
按名稱新增元素
print(p) #
zxc(x=1, y=2)
print(p1) #
zxc(x=3, y=4)
print(p.x) #
1print(p.y) #
2
介紹雙向佇列之前,先說明一下佇列是什麼。佇列是一種先進先出的資料結構,先放進去的要先取出。
import佇列雙向佇列就是可以在前或後進行新增和取出操作的佇列,原則也是一樣,先進先出。queue
q =queue.queue()
q.put(1) #
put 給佇列中新增元素
q.put(2)
q.put(3)
print(q.get()) #
get 取出佇列中的元素
(q.get())
(q.get())
print(q.qsize()) #
獲取當前佇列的元素個數
from collections importordereddict:有序字典deque
#deque 雙向佇列
dp = deque() #
雙向佇列 前後都可以新增元素
前') #
在佇列前面新增元素
後') #
在佇列後面新增元素
print(dp) #
deque(['前', '後'])
print(dp.popleft()) #
相當於print(dp[0]) # 在佇列前面取元素
print(dp.pop()) #
相當於print(dp[-1]) # 在佇列後面新增元素
print(dp.index('
後')) #
獲取佇列中某元素的索引 不存在報錯
from collections importdefaultdict:預設字典ordereddict
#ordereddict 有序的字典
od = ordereddict([('
k1', '
v1'), ('
k2', '
v2'), ('
k3', 'v3'
)])print(od) #
ordereddict([('k1', 'v1'), ('k2', 'v2')])
print(od.get('
k1')) #
相當於print(od['k1'])
for k in od: #
迴圈列印鍵 有序
print(k)
from collections importdefaultdict
#預設字典 在字典還沒有新增鍵值對時,就指定了預設值,新增的鍵在不賦值的情況下使用預設值
dic = defaultdict(list) #
引數必須是可呼叫的物件
dic1 = defaultdict(lambda: 3)
print(dic['
k1']) #
print(dic1['
key']) #
3dic['
k2dic['k3
'] = 'v3'
#直接賦值就不使用預設值
print(dic) #
defaultdict(, )
了解一下python內建模組collections
在使用python的過程中,一定是離不開資料結構的,也就是list 列表,tuples 元組,dictionaries 字典。那實際應用中我們更多的還是要去操作這些結構裡的資料。比如,在列表後面新增元素,那麼就會用到append 方法。那除了這些本身的操作方法之外,還有乙個python內建模組 co...
python模組之shutil模組
高階的 檔案 資料夾 壓縮包 處理模組 shutil.copyfileobj fsrc,fdst length 將檔案內容拷貝到另乙個檔案中 import shutil shutil.copyfileobj open old.xml r open new.xml w shutil.copyfile ...
python模組之timeit模組
timeit模組用來測量函式執行時間,通過實際 學習怎樣應用timeit模組 fromtimeitimport print timeit x 7 print timeit x 7 number 1000000 print timeit x 7 number 1000000 print 上面三個列印說...