QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2977

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter- o7 Q' x' v3 Z$ [: G9 f
    dict的子类,计算可hash的对象
    9 d4 p! \  D8 q$ K* {请点击Counter+ z9 T* }% e$ A& C# Q

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。; @! O# V/ N0 _7 P3 `+ a; O

    1. from collections import Counter9 D! Q+ q* U1 x* j, r) p) N' i* m
    2. 5 O; g6 V! o$ k( b2 o/ m
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]- L# q! p: q9 l2 J
    4. dic = Counter(list1)7 f5 e, s6 V/ c: N  M* X- p# t
    5. print(dic)+ N: v( q/ v! y! x
    6. #结果:次数是从高到低的
      & p$ ~# Q2 h0 I
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})2 n. @( |1 o' q. z

    8. 7 P5 Q# {, u4 q9 c8 q' c
    9. print(dict(dic))6 X' R\" B1 T6 C1 Y
    10. #结果:按字母顺序排序的
      - K, K& w  z3 u! ~: }, K1 b
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}. D2 D, ?% n! |6 b2 ?+ l4 }
    12. # I1 p4 f2 R+ U6 m' y
    13. print(dic.items()) #dic.items()获取字典的key和value
      ; H5 @\" b. a4 q6 G9 B
    14. #结果:按字母顺序排序的% r, f+ H& l3 r% j! i# h2 j  }5 D  p6 ?
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])7 \% D0 C, A- A. V1 w# {

    16. 5 F, J& x7 e& l9 b5 @4 D. S
    17. print(dic.keys())8 r) P( A' }\" K( r  A
    18. #结果:
      , O5 Y8 E8 E' i$ r
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])- `. g1 p# A% n
    20. 4 {2 I# _* }) S
    21. print(dic.values())
      / c- X' X  q* u. ^
    22. #结果:
      6 N\" \2 P/ I\" m) g, C% E  E1 L
    23. #dict_values([3, 1, 2, 2, 3])% l6 \( [  a5 j) N2 Y\" V# \! ]

    24. 3 q* Y7 M- H$ ]3 u: E1 k
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))6 B+ M8 B1 o) i2 q2 H/ l. T
    26. #结果:按统计次数降序排序* i, f& p\" O6 H9 f8 Y4 N
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      2 I& j' u: V7 D+ g2 P

    28. 3 V- @' m* i& m. ^
    29. for i, v in dic.items():
      6 r' u: \: ?* A. I
    30.     if v == 1:
        i\" c0 ~8 H$ g* `
    31.         print(i)
      + _* @9 I1 Z! P; V8 q' T% ?
    32. #结果:  t7 p5 c' s0 _8 n; s\" _- a9 `
    33. #b
        v3 a! Y. \. S% L
    复制代码

# l* u6 I/ m. @' o- a+ o( S% v6 ~- ~; X: Y; f  j
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-9-24 18:00 , Processed in 1.014382 second(s), 50 queries .

回顶部