QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2923

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter, H$ a! d, j  q
    dict的子类,计算可hash的对象
    $ ^8 I' [7 @7 h2 ]) L) I请点击Counter
    2 G! N) v7 Y7 K0 X9 t2 F

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。! ~9 A3 ^. T8 T. q4 ]' R

    1. from collections import Counter1 I2 Z  I3 |! s5 K3 M* j
    2. , O, z  l+ a& ~% x
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      2 \$ M4 b& w/ |0 ^) E
    4. dic = Counter(list1)
      : a7 I5 Z/ G: M5 g- r
    5. print(dic)
      2 @$ }8 X8 y# Z/ [
    6. #结果:次数是从高到低的
      ) C( ^8 \/ ]  v1 G
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      9 ^. M7 [\" b6 j4 }: ?

    8. 8 @% A8 {8 e$ ~2 i6 M
    9. print(dict(dic))
      3 l  `' _% x7 a2 |  |2 `
    10. #结果:按字母顺序排序的
      5 g5 Q9 `- Q5 Y2 g* m! C
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      : {+ {- V8 M* w2 B3 h

    12. 3 ^8 g8 F& i# R. j8 e
    13. print(dic.items()) #dic.items()获取字典的key和value9 D& l  Q, u  P0 B$ G- M
    14. #结果:按字母顺序排序的
      8 R$ J) _1 K6 t\" i
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)]). J+ {( |6 k4 G: m! q; e7 Y/ ?
    16. 6 L) ~) w) N+ s- e$ j* P6 ?
    17. print(dic.keys())
      8 B. R, ^3 g' S
    18. #结果:5 r. w% Y\" [, ], v% S- z/ Y
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])0 s: b5 q$ N- I' }$ ]
    20. 8 v1 [+ h+ p, a+ E% W5 x% |0 R
    21. print(dic.values())% ]5 Y9 z2 L; G, h* q
    22. #结果:$ i: t5 G) e7 g5 R% b' J
    23. #dict_values([3, 1, 2, 2, 3])
      2 r4 G: v/ X! c+ b! A3 z8 }

    24. ( }( O) t7 G( y
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      1 [5 R- ^9 F* |
    26. #结果:按统计次数降序排序
      + x, t1 X1 d' ?2 z% y* u
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]3 V  n\" K- M9 b
    28. 6 C- v1 B3 n1 ]) g9 |
    29. for i, v in dic.items():
      5 ~' v$ Z% J6 u
    30.     if v == 1:1 u# t- j# b8 c7 |: {2 H1 W
    31.         print(i)
      ! |8 j  S+ t- h9 q9 z
    32. #结果:0 A& h) p5 g( ?/ O
    33. #b. ]2 G/ U* b. ]/ p* P$ ]9 ]/ G
    复制代码
; a$ ~8 v1 e- U  d# w4 Y
$ t$ I0 ^( O" `( }/ F6 ^' \" `
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-4-22 07:25 , Processed in 0.652384 second(s), 50 queries .

回顶部