计数器(Counter); l9 D. M( u0 V/ r
dict的子类,计算可hash的对象
_: ~5 \3 Y+ N$ w9 ?2 V请点击Counter
/ u, ~( h* D5 t/ M( t
Counter()主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
# N/ ~! [. `. j7 H$ c( x1 I5 }
- from collections import Counter
( C- @* P9 c0 O! q+ {4 Q( ?; { - , [( q$ G& p5 C9 | o [; l
- list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
. n a e' |+ } E0 [$ v0 O8 L - dic = Counter(list1)
8 U& q( ^+ G3 H - print(dic)
N6 b) H& B: Q( N - #结果:次数是从高到低的8 H7 r* W0 u, h0 H n4 ?
- #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})5 t! s; E0 I, ]4 M: ]& T
- / |2 S6 a( o3 _
- print(dict(dic))' v/ [0 x4 p! m- b' E
- #结果:按字母顺序排序的' V9 X6 m, m4 Z! ^( A9 e9 w
- #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
. G4 N/ ^" I( x# Z* u7 v9 B7 j
% |2 ]) N$ k5 s( R+ z3 P+ ~- print(dic.items()) #dic.items()获取字典的key和value
, X1 [. N3 A# E7 a# y* m' u - #结果:按字母顺序排序的
' S1 @: S6 D; P' ^: B - #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])6 @! X0 _: Q" q- y) U- S' s
- # z. o0 Q7 X; ^3 r+ J& _
- print(dic.keys()), b: x' d" A. U& v* l) G6 n/ p* s
- #结果:
5 i, p* W$ u. l# I9 r, o3 x" } - #dict_keys(['a', 'b', 'c', 'f', 'g'])
3 r' Z" X- P% N" d - % y* S7 i' c: o# V6 J
- print(dic.values())
D/ [& G( ~) \8 Y, _ - #结果:
9 H8 {9 K A; v+ E - #dict_values([3, 1, 2, 2, 3])+ K; F3 u- p+ O4 D! a# M1 ]
# K0 I/ J3 X0 e8 F; N4 }- print(sorted(dic.items(), key=lambda s: (-s[1])))$ j% A9 Z _7 [0 S. y% R e
- #结果:按统计次数降序排序) J* F0 D! P) E/ e0 D7 u. o1 |
- #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
! _. `, q9 C# R/ N, \ - 0 z8 N! O% h$ G V
- for i, v in dic.items():
6 ]3 c$ G6 I$ C7 k9 N( y - if v == 1:; n5 F5 @- c; V P5 {
- print(i): [. c2 ]$ x; j2 Q
- #结果:
3 Y4 J1 N3 J# [* D - #b
# i7 P7 E9 j$ X; T( N
复制代码