QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    + s8 G( P! o& n: r3 o6 Rdict的子类,计算可hash的对象
    # X( F- A8 k) V请点击Counter* `6 U0 ~! F6 w$ S/ W& X

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。7 [; S4 w7 T: x9 x. w/ I

    1. from collections import Counter7 P% r\" t1 Q2 g' _

    2. ) v& o5 j8 w7 Z6 Z! h$ o
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]3 A9 I0 S* ]$ C
    4. dic = Counter(list1)& ^% M( I# [+ q; w7 B
    5. print(dic)3 L. @3 j* n! q* H8 U( z9 ^- Q0 C
    6. #结果:次数是从高到低的
      ; o3 ^( t7 w. P9 E% Y2 Y% x- l
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})# n( i  d: U# L9 T/ W
    8.   \5 d# }  h! Q3 a) q6 }5 l1 B
    9. print(dict(dic))
      + }\" j( e# T( Z, ~/ a8 P
    10. #结果:按字母顺序排序的
      ' w3 s7 b& G1 f' U3 ]
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      4 `# ~- x! f5 C& B/ g

    12. : c8 O0 R$ q! c  \
    13. print(dic.items()) #dic.items()获取字典的key和value
      : _- e4 ~2 A# O' s; @, a# p( [
    14. #结果:按字母顺序排序的  ?  y( V1 Z% n! L  R
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])+ j$ o7 e6 [8 f+ V

    16.   ~1 Z! }8 B5 b5 g: T1 Q0 J
    17. print(dic.keys())
      + `- S3 X) q. G
    18. #结果:+ W: z3 [% g* K  g% B0 {6 \3 r
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])5 t/ j; h3 p3 K\" }

    20. & ~+ s( k/ N. Q\" \! Z( U& e$ H
    21. print(dic.values())
      2 [8 x\" Q9 t, V7 R' I
    22. #结果:
      1 b( A3 `6 R/ m3 D* J5 _4 M
    23. #dict_values([3, 1, 2, 2, 3])
      : V\" J; B! u! H9 o) n

    24. , V1 H  ?7 ^3 X! M$ w) l
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      ) g. A- j9 [% `4 U: d1 q; o5 o
    26. #结果:按统计次数降序排序
      4 `* Q( ?2 e& I
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]; K7 ^\" s2 _' [1 a0 w

    28. # l& G  O, a; b* n3 X
    29. for i, v in dic.items():, x' m* K5 N; r
    30.     if v == 1:5 R8 X# `# w2 e\" P2 ?+ K; t
    31.         print(i)
      9 Y4 J9 k' m7 n# a7 O, D. ]0 e
    32. #结果:: V- v/ _6 R6 c
    33. #b/ y5 y8 ^2 D# n6 }4 e$ x
    复制代码
; i) ^* R) ]1 _4 \6 o3 k
% b& }1 y1 `& z; Q1 |3 m3 f5 A: G
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-8-2 17:13 , Processed in 1.835580 second(s), 51 queries .

回顶部