QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter3 W1 f# _) y, B* a
    dict的子类,计算可hash的对象" M2 ?% p$ r2 Z$ x' @
    请点击Counter3 }/ g- {- Z" T3 ]; z

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    * E* P% N3 t) K# L

    1. from collections import Counter9 F& y9 i. w: F* E# V# r& K0 G

    2. ( J1 G  e4 j- ^\" @( ?. P
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      ' D1 r' B/ _! d+ I4 K\" x8 g- C
    4. dic = Counter(list1)/ z4 r\" J3 }( N1 U. K3 t4 \
    5. print(dic). H) q2 B- E8 X! C! P& i3 v
    6. #结果:次数是从高到低的) ^3 x0 n# I) U; ^
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      9 @0 N% s2 m, F+ r: \
    8. + g- w+ G; {7 ~6 G  M! u
    9. print(dict(dic))
      + t\" `. `: g+ X8 \4 B: H$ y' @
    10. #结果:按字母顺序排序的
      + U: z/ s- z  K, O' ?
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}7 _$ D6 `! f* @3 Y

    12. # t' F/ Y0 y) E+ w3 q
    13. print(dic.items()) #dic.items()获取字典的key和value0 q% ]8 l1 d% Q\" O9 E% h6 `
    14. #结果:按字母顺序排序的9 l9 _! g, Y) M2 |
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      8 w2 h6 H5 v- }$ H8 d: b: K\" H; e
    16. 6 F/ T; k. K) D+ C; s$ h2 f
    17. print(dic.keys())
      ! x3 x& t, W9 Q4 ^) V( Z: ^; l9 V
    18. #结果:
      3 W5 o& T6 S+ h2 f, D$ V5 l
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])0 l5 F( ~/ |9 O# }4 }8 @8 Q/ E

    20. ( [0 t4 V! ]3 a3 u
    21. print(dic.values())% ^, n5 w4 X6 r) Z0 D
    22. #结果:/ u+ Q6 q- j1 i# w
    23. #dict_values([3, 1, 2, 2, 3])
        C, u  O, u: M5 T1 j: g

    24. 4 d2 q; V& U, z& V! U+ t' {# X/ b' b
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))$ g1 j; O5 F\" R7 r% ~7 H
    26. #结果:按统计次数降序排序5 }* J% Z& l9 e7 v3 d
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      - b: J( X5 `7 {2 x2 \9 ^
    28. # K$ a$ j/ V5 J9 f- V$ P
    29. for i, v in dic.items():+ b( p0 t0 Y  h
    30.     if v == 1:5 T) f4 S, A9 V# |/ m3 E! U5 N
    31.         print(i): I) W. V7 z9 U* [
    32. #结果:- M\" t' \6 Z# D' Q9 `, W
    33. #b
        _) W! M5 X0 P, [
    复制代码
6 u2 i8 l5 x3 T: R; B- g

- h) C; |- T4 b" {. p3 ~! ?
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-10 11:44 , Processed in 0.377515 second(s), 51 queries .

回顶部