In [132]:
from collections import Counter

nums = ['a', 'c', 'b', 'c', 'c', 'b']
count = Counter(nums) 
# 键值对列表
for k, v in count.items():
    print(k, v)
print(count)#3.6以后键有序
a 1
c 3
b 2
Counter({'c': 3, 'b': 2, 'a': 1})
In [133]:
 # 返回出现次数最多的两个数及其出现的次数
frequency = count.most_common(2) 
print(frequency)
[('c', 3), ('b', 2)]
In [134]:
list(count.values())##转list
3 in count.values()## dict_values类型
Out[134]:
True
In [135]:
#弹出最后一个键值
print(count.popitem())
('b', 2)
In [136]:
# 追加
count.update({'b':5})
count
Out[136]:
Counter({'b': 5, 'c': 3, 'a': 1})
In [137]:
count.subtract({'b':3, 'a':1})
print(count)
Counter({'c': 3, 'b': 2, 'a': 0})
In [138]:
# 覆盖
count['c'] = 5
count
Out[138]:
Counter({'c': 5, 'b': 2, 'a': 0})
In [139]:
# 键的迭代器(v>0,按插入顺序)
cnt = Counter({'a': 1, 'c': 3, 'b': 2, 'd': -4})
print(cnt)
print(list(cnt.elements()))
Counter({'c': 3, 'b': 2, 'a': 1, 'd': -4})
['a', 'c', 'c', 'c', 'b', 'b']
In [147]:
# v3.3以后有集合操作
cnt = Counter('Hello')
cnt1 = Counter('World')
 
print(cnt)
print(cnt1)
print('和集=' + str(cnt + cnt1))#和
print('或集=' + str(cnt1 | cnt))#或
print('差集=' + str(cnt - cnt1))#差
print('交集=' + str(cnt & cnt1))#交
Counter({'l': 2, 'H': 1, 'e': 1, 'o': 1})
Counter({'W': 1, 'o': 1, 'r': 1, 'l': 1, 'd': 1})
和集=Counter({'l': 3, 'o': 2, 'H': 1, 'e': 1, 'W': 1, 'r': 1, 'd': 1})
或集=Counter({'l': 2, 'W': 1, 'o': 1, 'r': 1, 'd': 1, 'H': 1, 'e': 1})
差集=Counter({'H': 1, 'e': 1, 'l': 1})
交集=Counter({'l': 1, 'o': 1})
In [149]:
# v3.10+  < <= > >= ==  != 
# cnt = Counter({'a': 4, 'b': 3, 'd': 7, 'c': 5})
# cnt1 = Counter({'c': 3, 'd': 2, 'b': 6, 'a': 4})
# cnt2 = Counter({'c': 4, 'd': 6, 'b': 2, 'a': 3})
# print(cnt > cnt1)
# print(cnt > cnt2)