标签:
Collection系列
1. 计数器(Counter)
Counter是对字典类型的补充,用于追踪值的出现次数
ps 具备字典所有功能 + 自己的功能
Counter
1 import collections 2 obj = collections.Counter(‘haskhflajgahg‘) 3 print(obj) 4 ret = obj.most_common(4)#取前四位(很少用到) 5 print(ret)
结果:
Counter({‘a‘: 3, ‘h‘: 3, ‘g‘: 2, ‘l‘: 1, ‘f‘: 1, ‘s‘: 1, ‘j‘: 1, ‘k‘: 1})
[(‘a‘, 3), (‘h‘, 3), (‘g‘, 2), (‘l‘, 1)]
most_common elements items
1 import collections 2 obj = collections.Counter(‘haskhflajgahg‘) 3 print(obj) 4 ret = obj.most_common(4)#取前四位(很少用到) 5 print(ret) 6 print(‘-----分割符-------‘) 7 for item in obj.elements(): 8 print(item) 9 print(‘-----分割符-------‘) 10 for k,v in obj .items(): 11 print(k,v)
结果:
Counter({‘h‘: 3, ‘a‘: 3, ‘g‘: 2, ‘k‘: 1, ‘s‘: 1, ‘j‘: 1, ‘l‘: 1, ‘f‘: 1})
[(‘h‘, 3), (‘a‘, 3), (‘g‘, 2), (‘k‘, 1)]
-----分割符-------
k
h
h
h
s
j
a
a
a
l
f
g
g
-----分割符-------
k 1
h 3
s 1
j 1
a 3
l 1
f 1
g 2
elements =》 原生的值
items =》 处理过后的数据
1 import collections 2 obj = collections.Counter([‘11‘,‘22‘,‘33‘,‘22‘]) 3 print(obj) 4 obj.update([‘Young‘,‘11‘,‘33‘]) 5 print(obj) 6 obj.subtract([‘Young‘,‘11‘,‘33‘]) 7 print(obj)
2. 有序字典(orderedDict)
orderedDict是对字典类型的补充,他记住了字典元素添加的顺序
3. 默认字典
Defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型
1 from collections import defaultdict 2 3 values = [11,22,33,44,55,66,77,88,99,100] 4 my_dict = defaultdict(list) 5 for value in values: 6 if value>66: 7 my_dict[‘k1‘].append(value) 8 else: 9 my_dict[‘k2‘].append(value) 10 print(my_dict)
结果:
defaultdict(<class ‘list‘>, {‘k2‘: [11, 22, 33, 44, 55, 66], ‘k1‘: [77, 88, 99, 100]})
4. 可命名元组(namedtuple)
根据namedtuple可以创建一个包含tuple所有功能以及其他功能的类型
1 import collections 2 #new a class , defaultdict 3 MytupleClass = collections.namedtuple(‘MytupleClass‘,[‘x‘,‘y‘,‘z‘]) 4 print(help(MytupleClass)) 5 obj = MytupleClass(11,22,33) 6 print(obj.x) 7 print(obj.y) 8 print(obj.z)
5. 双向队列(deque)
1 import collections 2 d = collections.deque() 3 d.append(‘1‘) 4 d.append(‘10‘) 5 d.appendleft(‘1‘) 6 print(d) 7 r = d.count(‘1‘) 8 print(r) 9 d.extend([‘yy‘,‘uu‘,‘ii‘]) 10 print(d) 11 d.extendleft([‘1‘,‘2‘]) 12 print(d) 13 d.rotate(3) 14 print(d)
结果:
deque([‘1‘, ‘1‘, ‘10‘])
2
deque([‘1‘, ‘1‘, ‘10‘, ‘yy‘, ‘uu‘, ‘ii‘])
deque([‘2‘, ‘1‘, ‘1‘, ‘1‘, ‘10‘, ‘yy‘, ‘uu‘, ‘ii‘])
deque([‘yy‘, ‘uu‘, ‘ii‘, ‘2‘, ‘1‘, ‘1‘, ‘1‘, ‘10‘])
6. 单向队列
1 import queue 2 # d = collection.deque() 3 q = queue.Queue() 4 q.put(‘123‘) 5 q.put(‘456‘) 6 print(q.qsize()) 7 print(q.get()) 8 print(q.get())
结果:
2
123
456
Python 从零学起(纯基础) 笔记 之 collection系列
标签:
原文地址:http://www.cnblogs.com/Bro-Young/p/5808379.html