QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter1 Y4 D% f5 }* I# A
    dict的子类,计算可hash的对象( W! v1 J: `+ Y
    请点击Counter
    * i, `/ R# i+ U5 j% h

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。. u$ Q% O! F5 U/ n

    1. from collections import Counter
        a* o; x0 Z1 S8 K1 w/ M
    2. & o- F- y% L, z
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      \" S9 w, _7 k( k
    4. dic = Counter(list1)
      4 Q$ p# i: w- f, k* W/ ]
    5. print(dic)
      3 y2 h5 n/ D% s  Q0 j\" r4 e( R/ x
    6. #结果:次数是从高到低的! u+ p\" |2 @, _( M0 }\" _3 d
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      / e\" w0 b( ^4 U2 }) `# j0 S

    8. & f5 P- M# Y7 h( `
    9. print(dict(dic))
      0 g$ {6 G$ Y+ Y2 ]. N\" S% ]# F
    10. #结果:按字母顺序排序的
      # J! Z6 Y5 Q  W9 V+ i
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      ; D8 z% D2 r. j- x) G$ ~7 E' k7 y
    12. + J- B) w\" b1 |: ?/ q\" `
    13. print(dic.items()) #dic.items()获取字典的key和value( f2 |2 P5 ^5 t$ @. r& N
    14. #结果:按字母顺序排序的' q  l, ]7 o( N. X9 T
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      5 T# q. I. k' S& ?8 x( ^
    16. 8 f* O% n) z\" f8 n; {
    17. print(dic.keys())
      \" H5 u- ]$ m* L4 R5 }, a
    18. #结果:
      * \, u9 l4 V. C3 k% I
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])' D- L3 P2 p& J2 N2 A
    20. , o8 ^4 @- N. i, a! J) i1 p
    21. print(dic.values())! S( k# `1 k) M  f6 F
    22. #结果:
      # [6 T2 q# y$ p\" ~0 h8 t7 ]
    23. #dict_values([3, 1, 2, 2, 3])9 F/ |  J, C3 ]# h' k: ^
    24. 7 T+ C4 w+ C8 ]1 F
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))5 _4 B# o5 N2 A. h\" K7 C4 _& C4 s
    26. #结果:按统计次数降序排序
      ' ^# b6 g1 p, F' O\" P3 [8 I' ~5 n% R
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]& G* o. b! i$ E$ h
    28. * T/ r\" t' r/ g3 l! d
    29. for i, v in dic.items():
      + b; a; U) t. k# N+ [
    30.     if v == 1:
      9 d- F! M5 C, [) v& Z- }
    31.         print(i), y4 V9 [/ H2 a5 T' r. s. |1 R
    32. #结果:3 }. {$ u0 S( j, _  p\" \6 B8 b
    33. #b5 Q/ h\" E& z; J* m. J+ W% D
    复制代码
. Q8 `- C. C6 ?: w  J6 @
7 }, T  }% r" m1 n! C
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-16 00:12 , Processed in 0.413465 second(s), 51 queries .

回顶部