python學習筆記之collections模塊的使用
阿新 • • 發佈:2018-06-18
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模塊的使用