python collection模块中几种数据结构(Counter、OrderedDict、namedtup),,collection模块


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 = iprint('类似元组的赋值:',m,n)d = i._asdict()print('转化为一个字典:',d)```

评论关闭