计数器(Counter)% S. J r! ~+ s! P* P4 `
dict的子类,计算可hash的对象 ?5 O( ~8 Q9 y/ o' Y
请点击Counter$ i: Z( V v0 {* r/ ^) Y6 Q
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
, ~$ P/ g: G' u: ?/ @* `
- from collections import Counter
0 N( M$ b2 q1 i
2 I2 @ t0 E1 M. U2 t0 @' S9 E' {$ |7 r. |. g- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]/ ~+ u, g: Y$ Z# y! d% a
- dic = Counter(list1)# n4 N E! N6 U" @& K- f. p
- print(dic); ?+ `+ a$ \1 |3 W) g
- #结果:次数是从高到低的
7 o! K. M$ U2 I G3 h - #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1}); S6 \2 C, ^" t* t
- & D) \7 g) Y w
- print(dict(dic))
( s2 M% G E( C* Q - #结果:按字母顺序排序的, H g3 j0 w3 n2 D
- #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}& V8 A$ z* q9 S- B
2 \# D3 A* S6 K2 ` U2 i" _& N- print(dic.items()) #dic.items()获取字典的key和value
C6 W) \ {9 K' c; M - #结果:按字母顺序排序的9 b; r" t$ {4 `, r
- #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])4 M' ?( I/ `1 I9 b
- ) O# y! C y; K8 q3 Y* d$ X0 }
- print(dic.keys())
' P v, q' \8 F& Q - #结果:% W2 M; d# Z h# d) ]5 S
- #dict_keys(['a', 'b', 'c', 'f', 'g'])3 @2 X5 ?6 U" M- y8 U
: w0 Q% l2 t8 d, A- print(dic.values())
; N6 f2 Q: a3 I) O! v% Z - #结果:
6 M, C" ]' W+ r7 p5 Y - #dict_values([3, 1, 2, 2, 3])
5 }1 F1 t6 B/ H i9 x% @ - ( W; C9 E4 f7 b( H( p: u
- print(sorted(dic.items(), key=lambda s: (-s[1])))! }; e, g4 P! t0 Q* v! X6 P+ P$ @5 n
- #结果:按统计次数降序排序# F/ z5 _+ q. ^7 s
- #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]. v! n$ I0 o+ n# Q
- , p' N9 |% K* x
- for i, v in dic.items():: \6 s/ x& |' A: k- _; A6 N
- if v == 1:' z" I9 F5 h% N. V; b
- print(i)
4 u4 J/ h* V( y/ r0 U o1 c4 ] - #结果:& z0 e- e' J8 H' [- D
- #b
9 d3 ^& F M( Y+ {4 a) `5 w
复制代码