QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter)# M3 M) q; J4 m2 a1 X
    dict的子类,计算可hash的对象
    : C( R2 h; E. A* l请点击Counter
    ) ^7 L! P+ O/ F6 L  S5 j

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。% K( o6 X4 d( q$ ]: Y6 P: t

    1. from collections import Counter
      ' i' Y: U, M7 G. d1 R0 ?

    2. 1 T- C6 \9 c( P4 H1 i5 t; _
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      6 R! A\" H7 V' s. e
    4. dic = Counter(list1)+ l7 }# t2 I  M2 E9 u5 V0 u  D
    5. print(dic)$ C3 F. I6 H  _3 M
    6. #结果:次数是从高到低的8 i: {; @1 C4 n4 ~9 ^% o. {+ U. ]
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      / y' j6 E+ C% \0 \  N/ }

    8. $ M3 \\" r/ B' X( _* U
    9. print(dict(dic))
      ' }$ U4 K' T- u( y/ o8 e0 O
    10. #结果:按字母顺序排序的
      2 e% Q( X4 ]. S3 ^
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      : y: G# K5 T: M7 T8 `) E
    12. 1 ^  l# h/ |6 Q0 W6 S
    13. print(dic.items()) #dic.items()获取字典的key和value. h& C: @% c: a$ i* g\" l: b9 Q
    14. #结果:按字母顺序排序的2 ^0 _: |, n3 m  Z3 Y+ T. C
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])3 y& u% Q1 @  O% U; O
    16. 3 t1 }  a' q$ e+ y
    17. print(dic.keys())- V0 t# M. s1 c6 K$ L2 B6 Z. N$ \
    18. #结果:1 I$ \  F- X- d% f9 q4 Y
    19. #dict_keys(['a', 'b', 'c', 'f', 'g']); x$ }4 I/ R; K/ R# i( {
    20. / g2 i' k0 m0 B
    21. print(dic.values())& B/ K$ {; A# V) R
    22. #结果:
      7 W( L/ a' S( Z- ?; F. }( L% B
    23. #dict_values([3, 1, 2, 2, 3])3 H2 F; Q7 k8 o+ [3 {, t

    24. + u$ f8 i- o' t
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))* G* M; l\" D# X5 t) m5 e
    26. #结果:按统计次数降序排序4 _1 a) h3 o# p3 o* }9 |
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]) t+ T' F/ }) x0 o$ R
    28. 6 r; O' H9 Q\" K& R4 _
    29. for i, v in dic.items():
      7 }) X4 q; o7 k& [( @
    30.     if v == 1:
      . m; d3 z. U9 o  ?9 A6 S( r' `
    31.         print(i)
      9 X% z3 |+ B  H: R\" E) P
    32. #结果:
      & i3 D% R' k  p4 {$ A
    33. #b
      : x. E, Y' t7 V9 _' H* D4 s
    复制代码

* _1 g1 g0 _% ]) A( t  F/ o" J& w
( A7 a, s+ E" g; V7 V; O  I
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-10-14 07:11 , Processed in 2.443175 second(s), 51 queries .

回顶部