python collection模块中几种数据结构(Counter、OrderedDict、namedtup)详解编程语言

collection模块中有几种数据结构我们可能用得到。

Counter是字典的子类,负责计数的一个字典,支持 + 加法 – 减法 & 求公共元素 | 求并集

print('Counter类型的应用') 
c = Counter("dengjingdong") 
#c = Counter({'n': 3, 'g': 3, 'd': 2, 'i': 1, 'o': 1, 'e': 1, 'j': 1}) 
print("原始数据:",c) 
print("最多的两个元素:",c.most_common(2))#输出数量最多的元素 
print("d的个数:",c['d'])#输出d的个数 
print(c.values())#输出字典的value列表 
print(sum(c.values()))#输出总字符数 
print(sorted(c.elements()))#将字典中的数据,按字典序排序 
print('/n/n') 
""" 
#删除所有d元素 
del c['d']  
b = Counter("dengxiaoxiao") 
#通过subtract函数删除元素,元素个数可以变成负数。 
c.subtract(b)  
""" 
 
""" 
可以添加数据 
b = Counter("qinghuabeida") 
c.update(b) 
"""

OrderedDict类型是一个有序的字典,它其实就是比普通字典多了一个顺序。

print('OrderedDict类型的应用') 
dic = {} 
dic['a'] = 'A' 
dic['b'] = 'B' 
dic['c'] = 'C' 
odic = OrderedDict() 
odic['a'] = 'A' 
odic['b'] = 'B' 
odic['c'] = 'C' 
print('无序字典:',dic) 
print('有序字典:',odic) 
print('/n/n')

namedtup类型,一个类似于字典的元组,可以转化为字典

print('namedtup类型的应用') 
deng = namedtuple('deng',['x','y']) 
i = deng(x = 11,y = 12) 
print('i的值为:', i ) 
print('将两个值相加:',i[0]+i[1]) 
print('用属性的方式相加:',i.x+i.y) 
m,n = i 
print('类似元组的赋值:',m,n) 
d = i._asdict() 
print('转化为一个字典:',d)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8392.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论