抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

简介:有时python的内置类型str, int, list, tuple, dict会无法满足要求,此时有模块提供使用

简介

collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:

  • namedtuple: 生成可以使用名字来访问元素内容的tuple子类
  • deque: 双端队列,可以快速的从另外一侧追加和推出对象
  • Counter: 计数器,主要用来计数
  • OrderedDict: 有序字典
  • defaultdict: 带有默认值的字典

使用情况

  • deque是list的一种,其区别是deque采用双边搜索,提高了搜索效率
  • OrderedDict是根据key的插入顺序进行记录的,而不是按照abc或者123来排序

namedtuple

namedtuple可以用来表示某个东西的属性,比如说a是一个三维点,具有三个属性,分别为x,y,z的数值

1
2
3
4
thD_point = collections.namedtuple('thD_point', ['x', 'y', 'z'])
a = thD_point(1, 2, 3)
print('x: {}, y: {}, z: {}'.format(a.x, a.y, a.z))
Output: x: 1, y: 2, z: 3

Counter

Counter一般用来记录字符串出现的次数,比如说,qweqweqwe,我们可以分别记录q、w、e的出现次数

1
2
3
4
str_ = 'qweqweqwe'
ct = collections.Counter(str_)
print(ct)
Output: Counter({'q': 3, 'w': 3, 'e': 3})

如果想要记录qwe的出现次数,则需要传入[‘qwe’, ‘qwe’, ‘qwe’]