QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter: m9 q0 n, d$ W7 B
    dict的子类,计算可hash的对象! T7 P; s7 N. c* V' L
    请点击Counter
    : W0 {) r% _; E6 d. n/ ?: K

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。. |0 R0 n. J" ?! p

    1. from collections import Counter. O  ~7 i' \, Y0 n! C
    2. ! D, n% G7 F9 E& g2 z
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]. U: M\" r: e( G: h4 t
    4. dic = Counter(list1)+ K) V$ f0 R8 s$ @2 q2 D# i
    5. print(dic)
      , K  c* n# q( \# m5 A0 |& V\" a
    6. #结果:次数是从高到低的2 w7 z5 S\" q$ g9 P; r
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      : o* m+ Y. ^. i7 n

    8. \" a- W' ]* k: o
    9. print(dict(dic))
      + ]2 q6 i. X9 w7 ~5 P. `- U1 ?6 ^
    10. #结果:按字母顺序排序的
      8 H( s' o: D3 z6 E* x
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      , ^; ^. g2 H( e5 }

    12. + T$ F: j6 u4 \% ?- J7 u1 h  ^
    13. print(dic.items()) #dic.items()获取字典的key和value
      & o' [5 T4 v3 J8 f- X# y% R% ?
    14. #结果:按字母顺序排序的
      - K, q& U7 a8 e( r* A8 e
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      - X# S' t4 q2 v2 ?2 _
    16. 5 [& J2 `9 n  A5 u. L* X! W4 a
    17. print(dic.keys())
      , b\" |7 @! S, v# M0 a+ T* y
    18. #结果:; Q- Y; z3 t: G* Z: R9 ]0 q( v
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      ) K. c7 B+ j! n1 d$ C3 R
    20. 6 Y7 T: e, Y9 S1 X1 i- W
    21. print(dic.values())
      - x0 t0 K2 ^' b, d2 j
    22. #结果:( B2 k, `' w  a! K0 v0 Z9 ~
    23. #dict_values([3, 1, 2, 2, 3])* D5 p6 N* L$ {# p. E1 r
    24. , c7 N6 S$ ~9 W) |% U
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      4 E/ w, K  N4 U* Z
    26. #结果:按统计次数降序排序+ z6 {& ~1 H$ v0 ~+ W. E. x
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]4 l$ q9 P- U. f! A9 M! V2 y1 R
    28. 0 q4 {2 o\" u) ^6 [+ K/ x$ b\" k
    29. for i, v in dic.items():3 s0 F/ X' ~+ p# N9 q$ X
    30.     if v == 1:( U9 }7 o6 [5 M+ G2 Y
    31.         print(i)
      3 l  @! T9 z1 {- I
    32. #结果:
      4 E, S9 o, n( M( t! s! q3 L- I
    33. #b; S0 p* Q4 q4 b0 _! B' W
    复制代码

) A; Y1 |. n3 A& B; L
2 C) w8 G- |* W& _- F) T
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-6-17 01:06 , Processed in 0.415640 second(s), 51 queries .

回顶部