返回顶部

收藏

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) ```

标签:python

收藏

0人收藏

支持

0

反对

0

发表评论