QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter$ ~# X6 |; S( ]2 |: C9 T
    dict的子类,计算可hash的对象
    5 t* U7 U$ i3 U6 o3 S9 E* H请点击Counter) C! Y7 V9 X6 E% C+ I

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    ) R  G+ \& V) e) B

    1. from collections import Counter
      1 h, e& g, K3 ?' J* h: f1 S

    2. ! C2 T0 }& m& v, I8 [  E+ u8 n
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]\" d$ k5 T0 n& Q+ \: \, y* f1 Q
    4. dic = Counter(list1)
      8 H1 m( s) H; m& d. J0 u
    5. print(dic)! s' x! n, h+ ], ?
    6. #结果:次数是从高到低的
      ! V# j2 m, E8 g+ {
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      4 U$ q  O( {9 _2 p; r

    8. 2 K! k. k1 {) O. X( F: g$ E
    9. print(dict(dic))1 s3 a4 E$ r$ g& v3 L\" M
    10. #结果:按字母顺序排序的; _3 D4 L% c! G' k4 v
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}' b' l- V* A' h; |& m
    12. ' i$ @$ g! n( G, l
    13. print(dic.items()) #dic.items()获取字典的key和value3 r0 h! j5 o% O( R+ ^. d' T
    14. #结果:按字母顺序排序的
      ; b( M8 P, p, h\" ]
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])! X/ I: I1 J3 q; ^. B1 N1 l8 d5 M

    16.   A' L/ n: A4 U
    17. print(dic.keys())7 i# a7 t  b. r4 L5 V9 k
    18. #结果:
      2 n' l* q2 `% {, S4 F0 W
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])  p. u+ s' O, D8 i) B% Z

    20. ! o2 P  c6 [. f$ _6 B3 H% v/ {
    21. print(dic.values())
      ( Z8 w7 ]* e; z( s1 s8 S/ Z8 ]' [
    22. #结果:: X; O9 @8 R8 N# q2 g
    23. #dict_values([3, 1, 2, 2, 3])
      $ g5 h& d! `  `  q7 M& C
    24. 2 q8 ^6 A/ W9 {+ ]4 S# E& o8 h6 {/ D
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))0 ~, `, j/ S7 {( C
    26. #结果:按统计次数降序排序\" e+ P7 b5 t: M3 H) k8 D5 A\" G
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      1 d5 x& z8 \\" c* N5 u3 v2 p

    28. ' u0 y+ D8 P& K( A0 @3 d) l
    29. for i, v in dic.items():+ z, F5 D/ w4 P1 I6 _, q: T1 [
    30.     if v == 1:
      1 b/ g! t2 q3 T6 q4 ]( b9 M$ b
    31.         print(i)% h# ~6 ~: |8 o$ z
    32. #结果:
      0 ?( T! T1 v* Q: C2 @
    33. #b
        m9 v7 }6 J. M( i6 x$ Y* g
    复制代码

/ p( ~- ?+ q7 b  ^, Q+ ^( _- p6 r9 L9 n
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-7-11 04:33 , Processed in 0.450389 second(s), 50 queries .

回顶部