QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    1 R+ @* K7 ~+ Ndict的子类,计算可hash的对象: M  ]5 \: w3 u4 d; K" B& v4 D
    请点击Counter' @% j+ ^2 I: v& s

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    6 t8 r3 f" g3 @3 m- J' T% ]

    1. from collections import Counter; \# K  w' |& J& V& R
    2. 8 s: ?4 _' b. p4 _/ i; B% ?\" K
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      ( x) |' @, d$ |\" V1 s
    4. dic = Counter(list1)
      8 C( [9 j- k& d! s& ]3 o
    5. print(dic)
      # l8 Q: G  G1 B8 N+ V
    6. #结果:次数是从高到低的* s( C# |5 }  k5 z
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      3 @* V! O- ^( R' W1 d

    8. - @. B: [' E( F8 h4 W
    9. print(dict(dic))
      5 ?* P) n! Y$ Y, _4 s+ c1 E
    10. #结果:按字母顺序排序的
      8 x' ?& Z' c. j+ V  R7 r
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      / }4 r% K# M' M\" I2 x- q

    12. - V% N. d# T: j9 {: s% v& M9 R; w
    13. print(dic.items()) #dic.items()获取字典的key和value
      3 P) [9 Z/ N+ w8 [
    14. #结果:按字母顺序排序的/ d: c5 f# `, `
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])# S( P2 X& s* j: ?, O# ]) a

    16. 0 T6 G- ~0 U: m' G. D\" U4 G
    17. print(dic.keys())
      8 u) e0 G5 A8 {* c
    18. #结果:
      \" ^* a) N. W8 M& B: Y  y* Y
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      ; ?, u/ W2 M7 X- N7 w, L

    20. ( Q/ X' a; \) T/ y% L, U8 I
    21. print(dic.values())3 u6 a4 f6 @& r/ G0 Q: }6 V# `- `
    22. #结果:0 V3 v% V0 {8 ]$ m( A, w9 ]
    23. #dict_values([3, 1, 2, 2, 3])' J\" O) S6 i! m0 m1 Z+ Z7 ?

    24. 1 W+ U2 T3 o/ @0 }5 }+ H* x  S
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      % ^' q6 M' L\" c) ]
    26. #结果:按统计次数降序排序# Y) C. ]3 ]. r6 q$ f; Q9 I
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]; Z8 _3 S! [3 R0 E3 P4 Y( F* L
    28. 4 }- X4 _) e9 C0 q4 Z/ C
    29. for i, v in dic.items():* E4 Z! I( Q5 S* P1 N! p
    30.     if v == 1:' ]+ L; `0 I& C% `$ x: S
    31.         print(i)5 k; U  |; D; a1 h2 |+ \0 X0 N
    32. #结果:/ A( B0 |) I6 f9 a/ F' l4 t
    33. #b
      3 [9 p, i' T5 T0 u
    复制代码

0 l, x8 ^7 |' L) E
# q  Y2 u- @6 b4 z
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-5-26 01:50 , Processed in 0.430229 second(s), 51 queries .

回顶部