QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter5 f, b, S% e! s0 _! |
    dict的子类,计算可hash的对象
    ) E8 ?1 U5 L2 d9 i5 f请点击Counter7 k6 ?5 l: X! p; }

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。1 h& D% h& C4 E' X$ d. U

    1. from collections import Counter5 Q0 V& \\" A, j2 s

    2. ' c/ t/ T) J: ?\" x6 g# z0 b1 Z
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      4 Q5 G3 u$ C, {9 a
    4. dic = Counter(list1)$ F6 A1 `1 P! p* u' E! L
    5. print(dic)
      , W8 A2 X\" v+ p8 L
    6. #结果:次数是从高到低的
      - h8 T( e$ M4 N' W8 f5 _. K- Y& Y! E
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      ! F6 n+ P/ ?: m/ T2 V! _9 M( n1 Q
    8. 7 h2 ~  c! I. T( x$ C
    9. print(dict(dic))
      8 v  f7 w( ~5 |% a! L! ~6 U
    10. #结果:按字母顺序排序的
      $ ~! o\" V# q( o8 i4 |
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}. s9 O: _% @% Z. a

    12. 0 W' c7 ?( O8 k1 A& H
    13. print(dic.items()) #dic.items()获取字典的key和value: J0 h' a8 Q8 @& W6 G
    14. #结果:按字母顺序排序的
      ' Z. ]6 M2 H6 {2 f2 s% n
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])/ k# W7 b, {3 ^: v& F- [8 b! F4 {8 {

    16. ( I! r- V1 W* d9 P
    17. print(dic.keys())
      2 R: c% a8 ]/ H' G
    18. #结果:8 D9 E\" w* ~% }9 K/ p$ U6 Z' [1 J
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])9 M  |* m& z4 E5 B1 q  @
    20. + I4 a  f1 |) d4 @8 A6 |9 X
    21. print(dic.values())
      2 ?! R+ @* G/ Y$ @
    22. #结果:
      % ?. |5 u, @1 B\" ?- W
    23. #dict_values([3, 1, 2, 2, 3])
      $ j+ a* v; m6 A! v/ i
    24. % j4 @4 }7 \! I; v) [; U
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))6 |1 S1 C5 i! N8 d
    26. #结果:按统计次数降序排序5 u) A$ [3 \8 T$ R* z+ F
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      - L) n  G\" L* z# c- M

    28. 3 }1 }8 A: J$ o( X! a
    29. for i, v in dic.items():
      ! ~  c* n) {5 [8 T; P$ |
    30.     if v == 1:# G\" X' v% m5 P/ h
    31.         print(i)
      5 h7 I6 m7 |3 i\" y7 S
    32. #结果:
      - y' y5 B- k\" F; `# _: J2 @8 T
    33. #b
      1 d% L- a$ d/ ^; V' y5 T
    复制代码

3 ^$ d2 c$ K/ ~4 I- p9 ~7 R
1 {: B4 ^; a3 W2 _$ d- U
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-10 13:17 , Processed in 0.419347 second(s), 51 queries .

回顶部