python--collections模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--collections模块相关的知识,希望对你有一定的参考价值。

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模块的主要内容,如果未能解决你的问题,请参考以下文章

python collections模块

python collections模块

Python collections 模块用法举例

Python: collections模块实例透析

python collections 模块

python--collections模块