计数器(Counter)
. {% q) j5 D1 {dict的子类,计算可hash的对象$ k; h/ y7 r- P7 E2 A* W w
请点击Counter
7 ?/ G$ e; M/ z6 n; j
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。, ^; K' Q. \4 _# k E6 F
- from collections import Counter
+ @5 a+ u f" ?1 S+ W* q" D8 @ - / `) T( D6 H$ F4 A
- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
9 e* c3 U- ~ o+ H8 f+ ~5 w- D - dic = Counter(list1)" j% F9 S) i" T B/ ~# D
- print(dic)" A8 E- E1 r8 Y" h( L1 b; b H0 |
- #结果:次数是从高到低的, ^) h; W9 o& @- d( o8 Q! u
- #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})9 X8 e- O2 \% s( L/ S# x
8 h! ]+ N- S( R- \, f- print(dict(dic))
. T# p7 e) j# r0 t8 \- H - #结果:按字母顺序排序的* i) B; z, {/ [ G5 r9 C# O
- #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}# R9 h* t% g& ~# C! w6 E# {. H. e$ m$ y
- ; b! p+ _4 `9 m
- print(dic.items()) #dic.items()获取字典的key和value
1 T. c: ]! E4 d V% D - #结果:按字母顺序排序的( {4 h9 @5 ~9 J: t0 \2 `6 N
- #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])3 g! E' E0 ^# R: p" ]" [6 N
% l$ Q+ w8 w; V& w- print(dic.keys())- K1 N5 K5 {3 S$ M5 c. M
- #结果:, H' a3 X, |2 H% Z! u R+ r* }$ f
- #dict_keys(['a', 'b', 'c', 'f', 'g'])8 i7 k) D& s2 q6 @- l
: J* Y. {; `$ y1 @( R+ g4 Y7 l3 b$ }( B- print(dic.values())
- \7 V# i N1 e+ i; N - #结果:' E% d/ V& ]. U# [$ i
- #dict_values([3, 1, 2, 2, 3])# Q2 R C' ]" u! ~5 T
- : T9 e2 h* i3 H( b, N7 h" u: i
- print(sorted(dic.items(), key=lambda s: (-s[1]))), j. ]% u; X% w& Z
- #结果:按统计次数降序排序
7 ^9 s/ u0 U4 g6 u, d - #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]: ^& h, c8 C) ?6 b
- % X9 T/ I# o( S5 g0 h
- for i, v in dic.items():
1 J' C+ x$ Z7 b% r$ U6 ]. N% H - if v == 1:
5 R* [( H, Q6 I" s' c2 t - print(i)4 X8 z1 n, T/ g5 n
- #结果:
3 e* [0 B) B8 \ l R/ \ - #b
B/ L2 y5 N g* E( a
复制代码