collections是Python內建的一個集合模塊,提供了許多有用的集合類。 1.Counter 計數(shù)器Counter是一個簡單的計數(shù)器,例如,統(tǒng)計字符出現(xiàn)的個數(shù): >>> import
collections>>> obj =
collections.Counter('applebanana')>>> print(obj)Counter({'a': 4, 'n':
2, 'p': 2, 'e': 1, 'l': 1, 'b': 1}) 2.OrderedDict 有序字典 使用dict時,Key是無序的。在對dict做迭代時,我們無法確定Key的順序。如果要保持Key的順序,可以用OrderedDict:>>> od =
collections.OrderedDict()>>> od['k2']
='k2'>>> od['k1'] =
'k1'>>> odOrderedDict([('k2',
'k2'), ('k1', 'k1')])或>>> od =
collections.OrderedDict([('k2','v2'),('k1','v1')])>>> odOrderedDict([('k2',
'v2'), ('k1', 'v1')]) 3.defaultdict 默認字典 默認字典會給字典的值設置一個默認類型import collectionsnum =
[11,22,33,44,55,66,77,88,99] #為my_dic字典的值添加默認list類型my_dic =
collections.defaultdict(list) for i in num: if i > 66: my_dic['k1'].append(i) else: my_dic['k2'].append(i)print(my_dic) 4.namedtuple 可命名元祖 namedtuple是一個函數(shù),它用來創(chuàng)建一個自定義的tuple對象,并且規(guī)定了tuple元素的個數(shù),并可以用屬性而不是索引來引用tuple的某個元素。這樣一來,我們用namedtuple可以很方便地定義一種數(shù)據(jù)類型,它具備tuple的不變性,又可以根據(jù)屬性來引用,使用十分方便 >>>person = collections.namedtuple('pp',['name','age'])>>>p = person('apple',2)>>>print(p.name)>>>print(p.age) 5.deque 雙向隊列 使用list存儲數(shù)據(jù)時,按索引訪問元素很快,但是插入和刪除元素就很慢了,因為list是線性存儲,數(shù)據(jù)量大的時候,插入和刪除效率很低。deque是為了高效實現(xiàn)插入和刪除操作的雙向列表,適合用于隊列和棧:>>> dli =
collections.deque([1,2,3])>>>
dli.append(4)>>> dlideque([1, 2, 3, 4])>>>
dli.appendleft(5) #appendleft向左插入數(shù)據(jù)>>> dlideque([5, 1, 2, 3, 4]) 6.queue 單項隊列 (queue模塊中) import queueq = queue.Queue()q.put(123)q.put(456)print(q.qsize())print(q.get())#q.get()會將單項隊列里面的數(shù)據(jù)依次取出來print(q.get())
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com