计数器(Counter)
* {2 I/ i7 u2 c0 q" _; S qdict的子类,计算可hash的对象) h% @+ l( W6 Y+ x8 _" C+ _
请点击Counter
- r( b7 e" l4 a0 Z
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。5 _& a# h. e; D( y/ O
- from collections import Counter
8 w& [3 w, b3 f7 D/ w! ?% S - " m( O- ~0 j4 Y* w4 I) ]8 `
- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
3 ?4 F; V1 p6 M: g: p W0 d - dic = Counter(list1)$ a* Y* c/ h' K5 g# W' s
- print(dic)
6 w# h! y9 i5 u M - #结果:次数是从高到低的* h9 C6 s* M3 C [2 A* T' D$ z
- #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
- v$ }! v. v" y' Y% G, [( ~
$ v/ r0 h9 G, }0 N- print(dict(dic))7 A2 n4 J `- Q! i! l
- #结果:按字母顺序排序的% b+ n8 i6 f+ C
- #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
8 v I/ ^! e" L( i* E, g/ L
. N* i: O" P$ w7 V/ _- print(dic.items()) #dic.items()获取字典的key和value8 ?1 ?, o: r. \* x8 l% ~
- #结果:按字母顺序排序的 e9 \3 r( W1 d7 J+ v
- #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
4 e' `) l5 o, j8 {1 p) x
& U$ x5 v+ O& q! L8 v. Z- print(dic.keys())
8 }/ D# x4 D4 a8 w7 B' M0 {1 ? - #结果:
+ G" i: R" `0 ` - #dict_keys(['a', 'b', 'c', 'f', 'g'])1 S4 R$ ?+ w! K) `% B
- q: k0 d/ B* ~! v( M* @( }
- print(dic.values()): Q' [/ A3 {& U7 _2 M' k
- #结果:& T5 [. F+ g/ ^$ q* R6 H
- #dict_values([3, 1, 2, 2, 3])
9 j. F8 S$ Q! K1 U - 4 Q" V& z0 z6 o6 X( q4 j5 c% f' k+ ]
- print(sorted(dic.items(), key=lambda s: (-s[1])))6 Q- |6 _9 o+ J) k8 [/ R
- #结果:按统计次数降序排序
z& z3 @, z5 W+ l) r$ X - #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]5 {; o% T- G8 `
- R+ _, s' T* n2 A" o5 r
- for i, v in dic.items():
; h3 _8 f4 ] O6 Z3 L6 }; c - if v == 1:
9 Z {9 I: h' o" v - print(i)$ d- b% Q8 I3 N+ |# Q
- #结果:
. \, f4 \0 k) ]; l2 v! T. V7 Y$ G6 a - #b. w. F' l# D% E, G
复制代码