collections模組,shelve模組

2022-07-24 03:03:11 字數 1307 閱讀 2633

1. collections

在內部資料型別的基礎上,加上collections模組提供的額外資料型別 namedtuple,deque,counter

1.1 namedple

命名元祖有助於對元祖的每個位置賦予意義(用來產生使用名稱來訪問元元素的資料物件)
from  collections import namedtuple   #

匯入模組collections中的namedtuple功能

point = namedtuple('

point

',['

x','

y']) #

定義元祖名稱,並對元祖每個元素進行賦予意義

p = point(1,2)

print(p.x)

作用:增加**的可讀性(namedple是函式,不是類)

1.2 deque

deque 使用list儲存資料時,按索引訪問資料很快,但是插入和刪除很慢,

因為list是線性儲存,資料量很大的時候,插入和刪除的效率很低

deque是為了高效實現插入和刪除操作的雙向列表,適用於佇列和棧

佇列:先進先出 fifo 棧:後進先出 lifo

from collections import

deque

q = deque(['

a','

b','c'

])'x'

)'z'

)print(q)

1.3  counter

計數,統計出現的次數,預設排序,以字典的鍵值對形式儲存,其中元素為key,計數的值為value
from collections import

counter

c = counter('

asdfghjkqgwtezx')

print

(c)#

結果:counter()

2 shelve

shelve:序列化 基於pickle實現的
import

shelve

f = shelve.open('

sss') #

win下生成三個檔案 蘋果下乙個

f['name

'] = 111 #

用字典的方式操作,新增鍵值對,鍵必須用字串的形式 值沒有要求

對比json和pickle,shelve不能進行檢視,將乙個物件持久化的存到檔案中,可直接檢視值得內容

collections 模組整理

collections.deque 類 雙向佇列 是乙個執行緒安全 可以快速從兩端新增或者刪除元素的資料型別。而且如果想要有一種資料型別來存放 最近用到的幾個元素 deque 也是乙個很好的選擇。這是因為在新建乙個雙向佇列的時候,你可以指定這個佇列的大小,如果這個佇列滿員了,還可以從反向端刪除過期的...

簡述模組 collections

collections模組主要封裝了一些關於集合類的相關操作。1.counter 是乙個計數器,主要用來計數。from collections import counter s 湯湯今晚的晚飯有餃子湯 print counter s counter from collections import c...

collections 集合模組

標準庫 collections 是 python 內建的乙個集合模組,裡面封裝了許多集合類。collections模組包含了除list dict 和tuple之外的容器資料型別,如counter defaultdict deque namedtuple orderdict等。這個模組實現了特定目標的...