python模組之collections模組

2022-05-17 08:31:38 字數 2166 閱讀 7563

collections模組

提供了一些額外的資料型別,供我們使用。

namedtuple:命名元組

from collections import

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

deque:雙向佇列

介紹雙向佇列之前,先說明一下佇列是什麼。佇列是一種先進先出的資料結構,先放進去的要先取出。

import

queue

q =queue.queue()

q.put(1) #

put 給佇列中新增元素

q.put(2)

q.put(3)

print(q.get()) #

get 取出佇列中的元素

print

(q.get())

print

(q.get())

print(q.qsize()) #

獲取當前佇列的元素個數

佇列雙向佇列就是可以在前或後進行新增和取出操作的佇列,原則也是一樣,先進先出。

from collections import

deque

#deque 雙向佇列

dp = deque() #

雙向佇列 前後都可以新增元素

前') #

在佇列前面新增元素

後') #

在佇列後面新增元素

print(dp) #

deque(['前', '後'])

print(dp.popleft()) #

相當於print(dp[0]) # 在佇列前面取元素

print(dp.pop()) #

相當於print(dp[-1]) # 在佇列後面新增元素

print(dp.index('

後')) #

獲取佇列中某元素的索引 不存在報錯

ordereddict:有序字典

from collections import

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)

defaultdict:預設字典

from collections import

defaultdict

#預設字典 在字典還沒有新增鍵值對時,就指定了預設值,新增的鍵在不賦值的情況下使用預設值

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 上面三個列印說...