计数器(Counter)+ U: l+ s: x* y0 R# z
dict的子类,计算可hash的对象1 r3 l. ~" k7 I, k% Z" U* W
请点击Counter- H5 g) j$ p/ T3 g& e4 e
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。% L$ B# ]# o4 C. z9 w: ~6 D
- from collections import Counter
2 ^% F% s) N W9 @. P
1 _) {; E$ y. [1 \. L- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]! A# S; S/ ^& F* Z! r! \
- dic = Counter(list1)* J, t* Z" m7 f K. `* ]
- print(dic)
~( Z3 p% P3 C8 Y5 F - #结果:次数是从高到低的8 n; L# z% h2 A/ O' p/ W
- #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
, n, b$ q$ z- L3 H - , S% f1 g4 u6 i" a1 D B
- print(dict(dic))2 @! W" |8 C9 M/ B3 M9 y
- #结果:按字母顺序排序的
) Q/ L; G$ D* [ - #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
* h* M5 ?! o7 ]8 e - . v' h. w# i% e5 X$ @" W; H& j0 A
- print(dic.items()) #dic.items()获取字典的key和value/ x" W' }7 k: ~# |, s
- #结果:按字母顺序排序的2 y5 n& X# P& O1 q1 p
- #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
5 C' U, z& \# d) e3 N* i9 x* x - 9 u7 ^, V! g | U: F( g! ^
- print(dic.keys())% _* o$ I$ ]. X5 T9 _: U! T$ j+ \. f
- #结果:7 \) j4 l+ ^, s) P& E
- #dict_keys(['a', 'b', 'c', 'f', 'g'])
# R" T7 [0 E/ p9 C7 @1 {
' ^. q! a* e! l# V% x/ n; L- print(dic.values())5 d; a7 l" i; F V. R
- #结果:. E# _, b7 L& {: g8 n# J. [
- #dict_values([3, 1, 2, 2, 3])
0 [8 G; C" M" O - 9 R5 Q+ S* s, |' J( k
- print(sorted(dic.items(), key=lambda s: (-s[1])))# r8 K3 ~2 Q* @, I8 @$ F
- #结果:按统计次数降序排序
; G; b# o6 A" M7 ` - #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
1 B$ R: p9 i: d4 @
" P0 H! R+ o, D+ x- for i, v in dic.items():
0 l9 z8 f0 V0 j+ ~9 x - if v == 1:
! f- V4 ^8 M- v - print(i)
* q' i* z( J7 Q+ w% t/ a& z$ [ - #结果:
. O) Q ?$ D' z2 T& l - #b2 V. Y9 k, S8 |
复制代码