python--collections模塊
阿新 • • 發佈:2017-09-12
返回 append 計數器 註意 bsp else cde 額外 希望
collections模塊
-
collections提供了額外的幾種數據類型:
- namedtuple: 生成可以使用名字來訪問元素內容的tuple
- deque: 雙端隊列,可以快速的從另外一側追加和推出對象
- Counter: 計數器,主要用來計數
- OrderedDict: 有序字典
- defaultdict: 帶有默認值的字典
-
namedtuple
-
>>> from collections import namedtuple >>> Point = namedtuple(‘Point‘, [‘x‘
-
-
deque
-
>>> from collections import deque >>> q = deque([‘a‘, ‘b‘, ‘c‘]) >>> q.append(‘x‘) >>> q.appendleft(‘y‘) >>> q deque([‘y‘, ‘a‘, ‘b‘, ‘c‘, ‘x‘])
-
- Counter
-
c = Counter(‘abcdeabcdabcaba‘) print c 輸出:Counter({‘a‘: 5, ‘b‘: 4, ‘c‘: 3, ‘d‘: 2, ‘e‘: 1})
- 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)]) # 註意,OrderedDict的Key會按照插入的順序排列,不是Key本身排序: >>> od = OrderedDict() >>> od[‘z‘] = 1 >>> od[‘y‘] = 2 >>> od[‘x‘] = 3 >>> od.keys() # 按照插入的Key的順序返回 [‘z‘, ‘y‘, ‘x‘]
- defaultdict
-
-
from collections import defaultdict values = [11, 22, 33,44,55,66,77,88,99,90] my_dict = defaultdict(list) for value in values: if value>66: my_dict[‘k1‘].append(value) else: my_dict[‘k2‘].append(value)
# 使用dict時,如果引用的Key不存在,就會拋出KeyError。如果希望key不存在時,返回一個默認值,就可以用defaultdict: >>> from collections import defaultdict >>> dd = defaultdict(lambda: ‘N/A‘) >>> dd[‘key1‘] = ‘abc‘ >>> dd[‘key1‘] # key1存在 ‘abc‘ >>> dd[‘key2‘] # key2不存在,返回默認值 ‘N/A‘
-
-
python--collections模塊