1. 程式人生 > >python學習筆記之collections模塊的使用

python學習筆記之collections模塊的使用

lec end pri () 索引 point ram 列表 學習筆記

  • namedtuple
  • deque
  • OrderedDict
  • Counter

一、namedtuple

用於創建一個自定義的tuple對象,可以用於給數組重命名,提高數組索引可讀性。

示例:

>>> from collections import namedtuple
>>> Point = namedtuple(‘Point‘, [‘x‘, ‘y‘])
>>> p = Point(1, 2)
>>> p.x
1
>>> p.y
2

 

from collections import namedtuple
students=namedtuple(‘Student‘,[‘name‘,‘age‘,‘sex‘,‘email‘])
s2=students(‘sun‘,‘25‘,‘girl‘,‘[email protected]‘)
print(s2.email)

  

二、deque

deque是一個雙向列表,包含append(),pop(),appendleft(),popleft()方法

>>> from collections import deque
>>> q = deque([‘a‘, ‘b‘, ‘c‘])
>>> q.append(‘x‘)
>>> q.appendleft(‘y‘)
>>> q
deque([‘y‘, ‘a‘, ‘b‘, ‘c‘, ‘x‘])

  

三、OrderedDict

使用dict時,Key是無序的。在對dict做叠代時,我們無法確定Key的順序。

如果要保持Key的順序,可以用OrderedDict

>>> from collections import OrderedDict
>>> d = dict([(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)])
>>> d # dict的Key是無序的
{‘a‘: 1, ‘c‘: 3, ‘b‘: 2}
>>> od = OrderedDict([(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)])
>>> od # OrderedDict的Key是有序的
OrderedDict([(‘a‘, 1), (‘b‘, 2), (‘c‘, 3)])

 註意是按照插入的順序,不是key本身的順序

四、Counter

 from collections import Counter
>>> c = Counter()
>>> for ch in ‘programming‘:
...     c[ch] = c[ch] + 1
...
>>> c
Counter({‘g‘: 2, ‘m‘: 2, ‘r‘: 2, ‘a‘: 1, ‘i‘: 1, ‘o‘: 1, ‘n‘: 1, ‘p‘: 1})

  

python學習筆記之collections模塊的使用