计数器(Counter)
7 a: P. u) _5 A* I4 C X/ A* { Kdict的子类,计算可hash的对象
: \9 P9 b: U7 I; d# Z! ]% p0 _+ d请点击Counter' O/ ?7 r% O6 O: Q( b& z
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。; b M) b" u0 L1 Y4 S* {/ W
- from collections import Counter7 t% D% g+ F5 _3 b/ U; t
- 8 R+ F" W0 T `) R4 q" y- D
- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]; C, l0 x5 E$ H: I6 s
- dic = Counter(list1)
, ]1 w: C2 ?+ f" G( O4 j" c+ s - print(dic)
L; Q. p5 U( @ - #结果:次数是从高到低的
: c% I9 M( ^3 g - #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
" g! a; |8 ]4 q5 ^ - ' _4 s3 e$ X4 g6 O) W: L# k5 Y
- print(dict(dic))
; m) j5 ~$ L4 q" {& M3 }8 b* U - #结果:按字母顺序排序的
7 c2 J$ A& R4 J; {0 R& q - #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
# @0 I6 p, q* O( B - T" ]7 d* z* k! b& _& t( ]- C N
- print(dic.items()) #dic.items()获取字典的key和value1 k$ ^3 D$ f/ V( N
- #结果:按字母顺序排序的4 `8 L( O2 ]; V! L f
- #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])$ B. |9 _1 ^! i D1 [9 j7 T# W" @
- 5 I6 M6 `# W, O: r4 U4 Y8 D* U! F' [
- print(dic.keys()) z2 w7 O% d/ }/ g/ c# ?+ T! l; q) b
- #结果:
V0 q3 H& t6 v- n0 s - #dict_keys(['a', 'b', 'c', 'f', 'g'])( {; [1 J5 f+ w7 ?( @8 r$ M
- 1 q/ X, s9 z- U# ]& k( q
- print(dic.values())
2 N+ f( [: t% i( [ - #结果:
0 Z# L+ D& Z$ {" w2 M( ^* Q - #dict_values([3, 1, 2, 2, 3])
8 R. r8 f; U2 k) b - 2 M/ n% x) W0 C# o! s* M( Y; Q0 j% H
- print(sorted(dic.items(), key=lambda s: (-s[1])))! p* G9 a5 [7 f
- #结果:按统计次数降序排序4 l9 S2 H+ S3 c
- #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
( z% ]' g! I5 i% F6 E+ ^& q
; |% ^3 k2 ?5 [! }7 y; d$ O* W- for i, v in dic.items():
7 |% U- z9 C, D: g% A - if v == 1:" J0 _5 N1 b" k# U2 e
- print(i)
2 I+ f" B8 Q$ C% h+ b8 e - #结果:! ?2 G9 |# b# k4 J( a" b
- #b
3 ^: i" h* o" s! U+ M; k
复制代码