collections是Python內建的一個集合模組,提供了許多有用的集合類別。 1.Counter 計數器Counter是一個簡單的計數器,例如,統計字元出現的個數: >>> import
collections>>> obj =
collections.Counter('applebanana')>> 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: 1my_dic['k my_dic['k1'].appendend (i) else: my_dic['k2'].append(i)print(my_dic) 4.namedtuple 可命名元祖 namedtuple是一個函數,它用來創建一個自訂的tuple對象,並且規定了tuple元素的個數,並且可以用屬性而不是索引來引用tuple的某個元素。這樣一來,我們用namedtuple可以很方便地定義一種資料型,它具備tuple的不變性,又可以根據屬性來引用,使用十分方便>>>person = collections.namedtuple('pp', ['name','age'])>>>p = person('apple',2)>>>print(p.name)>>>print(p.age) 5.deque 雙向隊列 使用list存儲數據時,按索引訪問元素很快,但是插入和刪除元素就很慢了,因為list是線性存儲,數據量大的時候,插入和刪除效率很低。 deque是為了高效實現插入和刪除操作的雙向列表,適合用於隊列和堆疊:>>> dli =
collections.deque([1,2,3])>>>
dli.append(4)>>> dlideque([1, 2, 3, 4])>>>
dli.appendleft(5) #appendleft向左插入資料>> ;> 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()會將單一項目佇列裡面的資料依序取出來print(q.get())
以上是Python基礎內容:collections模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!