QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    , Z- k8 j2 h& ^) x7 D7 Fdict的子类,计算可hash的对象
    % Z8 R- R* ^5 q) L' ?4 ?请点击Counter
    0 g9 Q& v' b- M2 A: t

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
      \) T1 ^. U4 s, y% j

    1. from collections import Counter
      / j& T, O% l\" |  V- B7 V\" ?! Z
    2. # A\" P! X& L8 {2 e! ?9 M
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      6 K$ e& M# f- I% T
    4. dic = Counter(list1)- ?\" p* ^; ^9 C) I
    5. print(dic)* O) Y) r# F# b1 x: o( W7 n+ d7 k
    6. #结果:次数是从高到低的# P1 t# \; Q* U/ l. }8 K
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
        \2 |6 j- A5 E; g5 P

    8. ! Y$ a. r4 U/ f; |8 x\" Y4 r6 O# C
    9. print(dict(dic))6 t. a# U, [2 X5 h
    10. #结果:按字母顺序排序的) ]+ M2 a9 j\" Z+ o' D, b7 w2 x
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}$ F\" T1 I2 @- r* }

    12. : w) _+ f- F* s! f
    13. print(dic.items()) #dic.items()获取字典的key和value( R% z8 I2 n3 l
    14. #结果:按字母顺序排序的
      7 h' c2 N( x8 E! t# M
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      9 b. z) u: f4 g  m, m( d

    16. ) p8 ~% \. d0 x8 N
    17. print(dic.keys())
      5 t1 r4 s$ b2 J/ n0 I, P0 ^
    18. #结果:5 a, c& e# s8 \7 G  x% g
    19. #dict_keys(['a', 'b', 'c', 'f', 'g']); |- f( S+ r0 F\" o' d( n6 l

    20. . e/ i! ]; x. p, u; k
    21. print(dic.values())4 o- ~) ^' [5 `1 q4 e
    22. #结果:2 A( ~6 \5 O1 x9 D
    23. #dict_values([3, 1, 2, 2, 3])' S, o( @( |1 E1 v

    24. \" g8 ]8 R4 E% R2 U6 S. C
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))' j6 o, @0 J0 E\" i\" i- L# V! b
    26. #结果:按统计次数降序排序, I; _& q9 j) ~; Y& H/ h4 e
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]9 ?7 q* y\" p5 C/ j/ g1 f6 f

    28. ' E* }4 |, X% ?$ `1 e
    29. for i, v in dic.items():8 U# _5 ~. m. h3 [% ^
    30.     if v == 1:
      ; p7 o5 L& c% i: y2 }
    31.         print(i)0 A3 B& s) g( I/ l/ X, q
    32. #结果:: F' @4 o6 u, h1 \) |6 Y
    33. #b: g- y' V  n4 G0 U' C. @0 m
    复制代码
- k9 f( M5 |9 T9 Z5 w1 L

3 k1 u: Z2 p# O% p* m! D& p8 \
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 07:27 , Processed in 0.536206 second(s), 51 queries .

回顶部