QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter4 G6 o7 I* Y9 V* R. u( T
    dict的子类,计算可hash的对象
    ( V2 |( Y9 H; z, w7 o请点击Counter2 G3 n3 h3 O7 d- U2 f$ j

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。( @6 X! z$ i3 x% |; G5 W

    1. from collections import Counter7 N, N5 y5 l% Y% C, p+ `( O% y
    2. \" V) x8 s4 C, H+ h6 @1 v1 X
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]- P& Q2 n6 V( N4 E8 M
    4. dic = Counter(list1)8 h3 G! c  Y& J: H$ j
    5. print(dic)6 Y: v5 T( {2 t& w* B
    6. #结果:次数是从高到低的
      * O\" D' i, w- A* n% Y# Q
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      2 {, J* M6 M* q/ _
    8. + p5 O* u6 J6 p* X9 i% l! h; Q# S
    9. print(dict(dic))
      , g) H: |: p- z0 `/ b+ `; v4 t
    10. #结果:按字母顺序排序的& u( o) ?6 g( h8 i  Q! p
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}& b/ j' I, @! W  M: `, N* {5 Z
    12. : h9 g9 B. H5 n+ X' P7 T
    13. print(dic.items()) #dic.items()获取字典的key和value
      + w$ o% s1 V* ^\" b3 p3 L1 `3 n1 A
    14. #结果:按字母顺序排序的% ?0 i% [9 O: P8 M$ j; f
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      / X6 W- u) `* N& Z0 `
    16. ) ~4 y/ D+ B\" P% |3 R
    17. print(dic.keys())2 r* C( S& e) n( x  Y* p
    18. #结果:. b7 v% H$ O) T7 [( I2 f2 N
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      5 r0 r3 T' j1 a- ~& f3 T7 o8 h: d$ L

    20. $ y0 U0 D$ @# _' H+ X+ u
    21. print(dic.values())
      . j0 r: V5 R. A& {* X6 w. X
    22. #结果:
      : }9 a1 _( f9 v; \6 U, ^9 B1 X
    23. #dict_values([3, 1, 2, 2, 3])
      8 N! h& G0 Z, N/ d/ I2 o

    24. & E2 P% E( f$ r
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      $ f) l2 |: c; C+ h4 o; y: f
    26. #结果:按统计次数降序排序
      # ^$ D( z& s1 f+ X9 J7 V$ w
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      . q: T, L- ]' }5 i7 V$ n. A2 G. S  J

    28. 7 H2 a# ^, t4 ^8 Y6 A6 U\" i
    29. for i, v in dic.items():
      ; ~6 v7 T  s) Z/ }6 V5 [
    30.     if v == 1:9 P* F+ S. Z& b! k9 P, n5 \
    31.         print(i)% \# `0 L, |\" o7 ]' J& s
    32. #结果:
      ' o* O. C, q! ^/ q+ G3 S
    33. #b\" p1 D. a% k8 d) |! s
    复制代码

1 b  G. Z+ F' J" Y( Z/ G1 w' `7 m4 K' p; T9 Y- B  K8 F
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-18 13:31 , Processed in 0.399710 second(s), 50 queries .

回顶部