ezeke 发表于 2018-8-11 13:15:40

Python基础(collections)

  Python中还有一些针对现有数据类型的补充类型(collections模块)
  collections模块包含多种数据结构的实现,扩展了其他模块中相应的结构。
  collections是Python内建的一个集合模块,提供了许多有用的集合类。
  1、计数器(Counter)
  功能:用于计算每个元素出现的个数
  >>> from collections import Counter
  >>> Counter()    #统计列表中每个元素的出现个数
  Counter({2: 2, 1: 1, 3: 1})
  >>> Counter((1,2,2,3))    #统计元组中每个元素的出现个数
  Counter({2: 2, 1: 1, 3: 1})
  >>> Counter('1223')      #统计字符串中每个元素的出现个数
  Counter({'2': 2, '1': 1, '3': 1})
  2、有序字典(OrderedDict)
  功能:和字典(dict)的用法一样,不同的是它会按照key的添加顺序来对key进行排序。
  >>> from collections import OrderedDict
  >>> li=[('a','1'),('b','2'),('c','3')]
  >>> dict(li)    #把一个列表类型转换为字典类型
  {'a': '1', 'c': '3', 'b': '2'}
  >>> OrderedDict(li) #把一个列表类型转换为有序字典类型
  OrderedDict([('a', '1'), ('b', '2'), ('c', '3')])
  3、默认字典(defaultdict)
  功能:和字典(dict)的用法一样,不同的是它会为字典里面的value设置一个默认数据类型和默认值
  >>> from collections import defaultdict
  >>> mydict=defaultdict(list)      #定义一个默认字典,value的默认数据类型为列表
  >>> mydict
  defaultdict(<type 'list'>, {})       #可以看到字典为空
  >>> mydict['k1']            #查询一个不存在的key
  []                     #返回key的默认值
  >>> mydict
  defaultdict(<type 'list'>, {'k1': []})    #查询的key不存在,则会创建该key,value为默认值
  >>> mydict['k1'].append('a')      #值拥有默认数据类型所拥有的方法
  >>> mydict
  defaultdict(<type 'list'>, {'k1': ['a']})
  4、可命名元组(namedtuple)
  功能:与元组(tuple)的用法一样,不同的是它会为元组中的每个元素设置一个名称
  >>> from collections import namedtuple
  >>> newtuple=namedtuple('Mytuple',['x','y'])
  >>> t=newtuple(1,2)
  >>> t
  Mytuple(x=1, y=2)
  >>> t.x
  1
  >>> t.y
  2
  5、双向队列(deque)
  功能:两端都可以操作,且线程安全的序列。(线程安全就是说多线程访问同一代码,不会产生不确定的结果)
  >>> from collections import deque
  >>> q=deque()
  >>> q.append(1)
  >>> q.append(2)
  >>> q.append(3)
  >>> print q
  deque()
  >>> q.pop()
  3
  >>> print q
  deque()
  >>> print q[-1]
  2
  >>> print q
  deque()
  >>> print q
  1
页: [1]
查看完整版本: Python基础(collections)