Python 从零学起(纯基础) 笔记 之 collection系列

时间:2021-12-14 17:35:32

Collection系列


 1.  计数器(Counter)

Counter是对字典类型的补充,用于追踪值的出现次数  

ps  具备字典所有功能 + 自己的功能

Counter

 import collections
obj = collections.Counter('haskhflajgahg')
print(obj)
ret = obj.most_common(4)#取前四位(很少用到)
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

 import collections
obj = collections.Counter('haskhflajgahg')
print(obj)
ret = obj.most_common(4)#取前四位(很少用到)
print(ret)
print('-----分割符-------')
for item in obj.elements():
print(item)
print('-----分割符-------')
for k,v in obj .items():
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      =》  处理过后的数据

 import  collections
obj = collections.Counter(['','','',''])
print(obj)
obj.update(['Young','',''])
print(obj)
obj.subtract(['Young','',''])
print(obj) 

2.  有序字典(orderedDict)

orderedDict是对字典类型的补充,他记住了字典元素添加的顺序

3.   默认字典

Defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型

 from collections import defaultdict

 values = [11,22,33,44,55,66,77,88,99,100]
my_dict = defaultdict(list)
for value in values:
if value>66:
my_dict['k1'].append(value)
else:
my_dict['k2'].append(value)
print(my_dict)

结果:

defaultdict(<class 'list'>, {'k2': [11, 22, 33, 44, 55, 66], 'k1': [77, 88, 99, 100]})

4.  可命名元组(namedtuple)

根据namedtuple可以创建一个包含tuple所有功能以及其他功能的类型

 import collections
#new a class , defaultdict
MytupleClass = collections.namedtuple('MytupleClass',['x','y','z'])
print(help(MytupleClass))
obj = MytupleClass(11,22,33)
print(obj.x)
print(obj.y)
print(obj.z)

5.  双向队列(deque)

 import  collections
d = collections.deque()
d.append('')
d.append('')
d.appendleft('')
print(d)
r = d.count('')
print(r)
d.extend(['yy','uu','ii'])
print(d)
d.extendleft(['',''])
print(d)
d.rotate(3)
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.  单向队列

 import queue
# d = collection.deque()
q = queue.Queue()
q.put('')
q.put('')
print(q.qsize())
print(q.get())
print(q.get())

结果:

2

123

456