QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1176

主题

4

听众

2884

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    ! h, o3 q$ r, ~. B! jdict的子类,计算可hash的对象& S( }) s( M# [. Q9 Y1 W+ f& F! w
    请点击Counter  i8 v& v- I, |

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    8 e# P: g3 `1 ]

    1. from collections import Counter
        {* e0 b, `- e! R1 V' o

    2. , d9 p2 ^9 B7 a4 S$ u
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]1 E' k4 B' h; q! g- p
    4. dic = Counter(list1): m- q; W& N; ~. ^* y! u) t# e
    5. print(dic)
      $ |* v: G\" j0 M6 v* c+ \: p
    6. #结果:次数是从高到低的
      . K$ L5 i! k; t, Z# W* `% T5 f) _
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      : S\" Y& I, x0 \& z% Z5 M

    8. ; \$ z3 z: r! E& n
    9. print(dict(dic))  X$ |\" R- i! K' L9 v8 M! I
    10. #结果:按字母顺序排序的$ H$ [% i4 d. g0 C  u# R0 c\" f
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}0 U) H( j! {' b
    12. ! [0 X8 }1 w0 |' ~: X7 m
    13. print(dic.items()) #dic.items()获取字典的key和value  n4 R' b1 m9 S: ~
    14. #结果:按字母顺序排序的, R& X- a) B8 q5 \  x8 n
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])4 m0 o6 n2 ]5 }: c5 W0 D( K

    16. 3 J/ I: \' m; K: Z4 I2 o\" c
    17. print(dic.keys())2 u- {$ L4 O! O8 S, s* J$ Y; a- l
    18. #结果:
      7 w1 h8 K) X+ M) E
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])% D+ y* W, a3 e: l: t
    20. 0 ^- [5 o\" i5 s* J: r
    21. print(dic.values())
      & y5 \( |0 w6 J/ D# L
    22. #结果:, l, h7 l9 m, ]  X  U
    23. #dict_values([3, 1, 2, 2, 3])
      9 V' c4 f7 I1 K' `; H* V

    24. ) Q: a8 m) U. P9 S
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))! |1 ]7 c9 Q0 e) f
    26. #结果:按统计次数降序排序5 N- W/ \; r( ], r$ {
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]$ u4 k' {8 `5 W/ n2 F3 Q# n; ?

    28. # b* F9 G) o1 `* x; G. N8 }7 y5 y1 ~
    29. for i, v in dic.items():
      2 Z$ K4 k$ e\" {( }. G
    30.     if v == 1:
      1 e( s3 h, S  F$ a- w; W. g
    31.         print(i)- u5 M5 t- \' ~# a6 O* i, O! }
    32. #结果:
      9 r5 X9 |& a' f& p( i
    33. #b
      ; j3 W. W( n) L7 F+ Q( L( U8 h
    复制代码
0 t5 E) @( U4 c# I) x; P! S7 M
3 D- S  y( O& Q8 t% E1 W
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, 2025-9-21 05:16 , Processed in 0.534838 second(s), 51 queries .

回顶部