QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2450|回复: 0
打印 上一主题 下一主题

Python collections模块之Counter()详解

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter! H+ ]7 V! Z/ }& p# R4 {
    dict的子类,计算可hash的对象' l2 I% m- x/ U/ o& B) E# r
    请点击Counter
    ) r0 h1 |3 g8 y- R  \0 v. m$ ~' ^) G

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    0 o* G1 R7 x+ G2 [  C9 R

    1. from collections import Counter* {( G/ [/ O/ b+ o6 w

    2. ' k\" w' h+ e- ~0 ^4 `0 U( \
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      % |8 R' Y7 e3 q+ Y; P- j% D
    4. dic = Counter(list1)7 P5 E: `( M% [- Q1 s8 o  f# V8 t
    5. print(dic)
      * O' O3 ^- [( d2 S2 k8 E, ^
    6. #结果:次数是从高到低的3 F: u5 i1 f\" j7 F. K/ M
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      1 e! ^\" z) a, H, y' X9 ~: f8 c

    8. 0 l8 g# D* f1 X6 O0 P& y# P
    9. print(dict(dic)); d$ \# ^- R; _3 b5 W' t
    10. #结果:按字母顺序排序的+ X4 i4 k- F( E4 e  `7 x3 e
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      6 B1 S1 O5 k8 m' H( |$ x. u

    12. ) O0 X4 U  o  @& g
    13. print(dic.items()) #dic.items()获取字典的key和value
      ) a' C% `; E3 ?3 w: x* N
    14. #结果:按字母顺序排序的. r( ^' y: U7 i1 a  k, E
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])& N- N8 r# W; C6 W) |) v

    16. : [( H: t; `/ f6 x1 U
    17. print(dic.keys())
      1 q' y! H  M) U! C0 F* `
    18. #结果:
      : m9 G; w5 k. b& z% A
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      % D# ^$ C2 H6 D' h6 Z  j
    20. $ P3 p; G( U7 Y1 h! T: M' P\" W
    21. print(dic.values())
      % u+ l9 ]; Q- M) [: b9 x8 ^: D
    22. #结果:( ~- G$ }5 i2 V
    23. #dict_values([3, 1, 2, 2, 3])) t) F( F$ _+ q\" h( V. p
    24. & I( x* n; \+ L' n
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))6 \) k4 ~1 @; u- M, M; e; @
    26. #结果:按统计次数降序排序3 c  k* a7 [\" \& K) @0 q. S- _
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]0 w\" Y& x: V0 M/ W
    28. / b: s\" L+ ]. r; c
    29. for i, v in dic.items():
      9 i, S: G' L0 }# |4 I0 U
    30.     if v == 1:  t2 f3 t3 K/ @* @
    31.         print(i)% e+ U9 ]) P6 J  \: u
    32. #结果:& s; s' J9 m9 g/ I* u! V/ Z
    33. #b
      ; }- J0 p+ x; t1 t
    复制代码
9 {, ?$ ~8 w$ ~: f

8 ^9 R6 p4 Y1 R& y4 |: }4 ^
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-8-2 21:14 , Processed in 0.390763 second(s), 51 queries .

回顶部