1. 程式人生 > >python--collections模塊

python--collections模塊

返回 append 計數器 註意 bsp else cde 額外 希望

collections模塊


  • collections提供了額外的幾種數據類型:

    • namedtuple: 生成可以使用名字來訪問元素內容的tuple
    • deque: 雙端隊列,可以快速的從另外一側追加和推出對象
    • Counter: 計數器,主要用來計數
    • OrderedDict: 有序字典
    • defaultdict: 帶有默認值的字典
  • namedtuple

    • >>> from collections import namedtuple
      >>> Point = namedtuple(Point, [x
      , y]) >>> p = Point(1, 2) >>> p.x 1 >>> p.y 2
  • 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模塊