QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    4 A+ |2 g% F* \( _9 @$ hdict的子类,计算可hash的对象2 J7 L2 p& S' `2 e( W" T# F1 `: e6 E
    请点击Counter
    $ A2 }8 t  W) ~: A, P' G7 \

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    : N6 `. r' b9 E" F6 L7 `. f- h0 n

    1. from collections import Counter- o7 s4 N6 M5 }
    2. 9 E0 y0 v. W' i4 L3 e: O
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]3 P9 S( p( }\" w0 s$ D
    4. dic = Counter(list1)/ H+ u\" k, c# y/ k, s
    5. print(dic)6 C7 D\" g/ B3 C8 ?0 T
    6. #结果:次数是从高到低的7 f* L! B. y6 q
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      . u0 [  h: X0 W7 ~. F; {2 k

    8. 0 ]# w0 G7 A! |9 [- q, K' N# K2 N) G3 K
    9. print(dict(dic))
      $ W$ n! n/ C7 |3 N2 }& s
    10. #结果:按字母顺序排序的# P( S$ F2 P& i8 W( y2 H
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      / W( I& Z9 u; a

    12. 5 y7 Y9 t' A( K
    13. print(dic.items()) #dic.items()获取字典的key和value& M; e+ n4 H8 {# H& L
    14. #结果:按字母顺序排序的
      8 [7 {2 |. F$ w! L9 m' L
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      * |# v: o& @5 Q6 Z) d+ Z

    16. & U4 `* j# b8 t
    17. print(dic.keys()). p! S) j( J, R. B0 L/ J
    18. #结果:
      4 T* c2 F/ V6 g  }0 A7 V
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      . @6 f8 c\" V3 K6 [/ W7 y, p* H- v8 }

    20. & {7 w' `  M! L3 N' u5 j
    21. print(dic.values())/ T/ a# a$ `0 y8 {/ O
    22. #结果:0 D4 c) C( M  U3 A
    23. #dict_values([3, 1, 2, 2, 3])\" K; ^9 j8 j, l5 K9 x9 r1 @. H! F

    24. % g1 s* E- R1 h) c; z
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))1 t+ o/ o5 V\" K, L* A, t( S
    26. #结果:按统计次数降序排序
      . c9 n' ^/ o1 [$ k$ n& W$ j) b  ~
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]) Q, ^+ B2 F: O) K- B

    28. & C1 x7 N3 b\" G& o
    29. for i, v in dic.items():
      # I# i0 f, ^/ C\" |
    30.     if v == 1:8 c\" }7 c0 O. x0 d$ p
    31.         print(i)' F* d1 m- Z, B9 I% W
    32. #结果:
      * U1 U4 \6 F7 Z# g, d  @7 }( x
    33. #b: Z2 N: s3 T2 B
    复制代码
/ ~& L4 _& P3 f! f
8 i$ X5 Y% k; ~( m5 |/ 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-4-12 16:28 , Processed in 0.386187 second(s), 51 queries .

回顶部