QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2977

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter)
    + \2 z7 C3 A& V& Qdict的子类,计算可hash的对象
      S" l/ w2 J& z/ L: T请点击Counter. {$ a: s4 @% Z: r' v& _2 f# b7 O0 R

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    ! A2 N2 _8 V- S6 ~% }" I

    1. from collections import Counter: O- Q+ h6 f* v4 G; R7 x

    2. * @4 C2 _0 J# j1 z: ]. U: r
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]8 X5 K4 e' S* g3 P% ]; T
    4. dic = Counter(list1)9 g% u# D3 u% M! N( l
    5. print(dic)5 `0 v6 V0 v5 n+ }% Q
    6. #结果:次数是从高到低的
      ) k9 H0 A\" ~: j2 [5 R2 S
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      \" o* V7 `* Q4 ~6 I

    8. ! D& W9 E+ q2 b2 K% E) s
    9. print(dict(dic))9 W1 a3 _4 U1 z
    10. #结果:按字母顺序排序的
      5 h3 [, a9 p- n) E9 S
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}* ]+ p9 C8 S' f' J3 N. A

    12. : h' a8 h& e\" D) r
    13. print(dic.items()) #dic.items()获取字典的key和value
      / b, v3 w( M  p
    14. #结果:按字母顺序排序的7 O& U: R- h% K' a2 N  t
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      - f+ d3 l8 Z& {( m
    16. ' q! c  c9 X# _( O# d
    17. print(dic.keys())7 Z# k, t; F# g- B( D: A0 e$ Q
    18. #结果:
      7 ^\" |  u( q7 c8 B8 o
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      6 y; Q. h. K7 N+ r1 v+ C9 U) V

    20. - @: _5 O% ^) f. h: ~: m
    21. print(dic.values())2 T7 A' H\" C6 d
    22. #结果:
      * _) p% c' m: A2 |6 F' @
    23. #dict_values([3, 1, 2, 2, 3])\" T& X8 B  _0 l$ S0 ]  N& n4 v

    24. . M! P7 Y, P0 Q
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))# k\" @8 Y% P! }
    26. #结果:按统计次数降序排序
      3 ]! l# _* }. v! k3 i
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]6 I0 H& E$ a, N! @1 {# n

    28. 3 r5 L) x7 D\" s: u8 }* X6 G
    29. for i, v in dic.items():
      0 S2 A\" Z. y' I5 ^# F: e% P
    30.     if v == 1:
      ( W* ]. v1 |+ K$ \2 r
    31.         print(i)
      ' G6 J- S6 O3 B' w  Q9 C
    32. #结果:
      / \7 P3 E; m& h/ H\" Q
    33. #b( {' A- v\" S3 g4 {7 Q
    复制代码

: w% ~" o- p) i& z2 _3 A3 {1 O" N  I& e' V, Z3 ^% f/ f: ~
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-9-25 09:44 , Processed in 0.339759 second(s), 50 queries .

回顶部