Python之 - --------Collections系列以及用法

本文介绍了Python的collections模块,包括Counter的计数功能、deque的双向队列操作、defaultdict的默认值特性、OrderedDict的有序字典以及nametuple的命名元组。详细讲述了各个类型的使用方法和示例,如Counter的most_common、elements方法,deque的append、pop等方法,以及如何利用defaultdict和OrderedDict处理字典操作。文章最后总结了collections模块的实用价值。
摘要由CSDN通过智能技术生成

collections的常用类型有:

计数器(Counter)

双向队列(deque)

默认字典(defaultdict)

有序字典(OrderedDict)

可命名元组(namedtuple)

使用以上类型时需要导入模块 from collections import *

1. Counter

Counter 作为字典(dict)的一个子类用来进行hashtable计数,将元素进行数量统计、计数后返回一个字典,键值为元素:值为元素个数

[python]  view plain  copy
  1. s = 'abcbcaccbbad'  
  2. l = ['a','b','c','c','a','b','b']  
  3. d = { '2'3'3'2'17'2}  
  4. # Counter 获取各元素的个数,返回字典  
  5. print(Counter(s))   # Counter({'c': 4, 'b': 4, 'a': 3})  
  6. print(Counter(l))   # Counter({'b': 3, 'a': 2, 'c': 2})  
  7. print(Counter(d))   # Counter({3: 3, 2: 2, 17: 1})  
most_common
[python]  view plain  copy
  1. # most_common(int) 按照元素出现的次数进行从高到低的排序,返回前int个元素的字典  
  2. m1 = Counter(s)  
  3. print(m1)                 # Counter({'c': 4, 'b': 4, 'a': 3, 'd': 1})  
  4. print(m1.most_common(3))  # [('c', 4), ('b', 4), ('a', 3)]  
elements
[python]  view plain  copy
  1. # elements 返回经过计数器Counter后的元素,返回的是一个迭代器  
  2. e1 = Counter(s)  
  3. print(''.join(sorted(e1.elements())))  # aaabbbbcccc  
  4. e2 = Counter(d)  
  5. print(sorted(e2.elements()))  # ['17', '17', '2', '2', '2', '3', '3'] 字典返回value个key  
update
[python]  view plain  copy
  1. # update 和set集合的update一样,对集合进行并集更新  
  2. u1 = Counter(s)  
  3. u1.update('123a')  
  4. print(u1)  # Counter({'a': 4, 'c': 4, 'b': 4, '1': 1, '3': 1, '2': 1})  
substract
[python]  view plain  copy
  1. # substract 和update类似,只是update是做加法,substract做减法,从另一个集合中减去本集合的元素,  
  2. sub1 = 'which'  
  3. sub2 = 'whatw'  
  4. subset = Counter(sub1)  
  5. print(subset)   # Counter({'h': 2, 'i': 1, 'c': 1, 'w': 1})  
  6. subset.subtract(Counter(sub2))  
  7. print(subset)   # Counter({'c': 1, 'i': 1, 'h': 1, 'a': -1, 't': -1, 'w': -1}) sub1中的h变为2,sub2中h为1,减完以后为1  
iteritems
与字典dict的items类似,返回由Counter生成的字典的所有item,只是在Counter中此方法返回的是一个迭代器,而不是列表
iterkeys
与字典dict的keys方法类似,返回由Counter生成的字典的所有key,只是在Counter中此方法返回的是一个迭代器,而不是列表
itervalues
与字典dict的values方法类似,返回由Counter生成的字典的所有value,只是在Counter中此方法返回的是一个迭代器,而不是列表

2.deque

deque 包含在文件_collections.py中,属于高性能的数据结构(High performance data structures)之一.可以从两端添加和删除元素,常用的结构是它的简化版
队列右边添加元素
appendleft
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值