QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter)1 X8 f+ w; T; C& `
    dict的子类,计算可hash的对象. Q3 H7 F# D5 G- Z/ P9 H# O
    请点击Counter
    , I9 h9 H  m6 s( c; _; m

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    ; b. d# Z: T7 p2 I; O

    1. from collections import Counter+ S0 W8 y  [3 u; j# Z
    2. ( B! b; i+ X$ m
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]( I) T\" E2 [) i$ p1 `* l& r
    4. dic = Counter(list1)0 C+ i2 R+ z5 P- u# A% T\" w
    5. print(dic)
      ) C3 i# a% U; i9 {. ^
    6. #结果:次数是从高到低的
      ' @% u; {& g2 l! _; y
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      - v% L4 [' ^) J, t% ?0 M/ v5 @0 r
    8. * s9 I# P4 Y+ H2 s3 ]. V
    9. print(dict(dic))( H: J. }1 b\" Z3 J
    10. #结果:按字母顺序排序的
      * N; k, P6 b& S6 ?0 M2 Z9 G' }; ?
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}. Q% j3 L2 {$ X! U' a

    12. 1 X$ D. G. q+ \  U8 H7 X
    13. print(dic.items()) #dic.items()获取字典的key和value
      \" L% b; S7 D6 x% C% T. O
    14. #结果:按字母顺序排序的+ l4 K  p% y; R2 e2 d% G8 ?, }
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      : u% Q9 V( _. k4 l. {9 m

    16. ( C0 g- t3 w! v/ b9 E7 _7 \
    17. print(dic.keys())\" i  {6 @9 @\" Z  q+ V
    18. #结果:
      $ p' K9 n3 B3 N4 }0 G/ V
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      / l% o, a4 G. Y8 F

    20. 1 H4 X- c+ K  u+ J8 I% a
    21. print(dic.values())
      , r9 a# w5 ]- |; E) L% D
    22. #结果:9 n, ~8 e6 b. R& Q' ^
    23. #dict_values([3, 1, 2, 2, 3])7 W7 b0 D  n4 ^+ u) o# m+ u+ c* L
    24. ' y4 X, B7 a! b8 p/ a6 R
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))6 }  Y0 m; ?8 {
    26. #结果:按统计次数降序排序$ p) a* Z0 S( c. C0 ^0 m/ P( Y
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
        a9 _9 I& t  q! o2 Y0 W' C

    28.   ^8 p2 ~9 M% G- G* D
    29. for i, v in dic.items():7 o& ]. V' |. k: g6 O
    30.     if v == 1:
      7 W* Y+ x6 f& W, K
    31.         print(i)\" @' K0 Y% b4 o9 U4 |, y
    32. #结果:
      4 w1 p, r! Q6 z
    33. #b
      3 E' e' f7 j$ m- p
    复制代码
: s6 P0 `' ^3 J
5 ], G( b( e- E4 z; |
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-10-14 09:02 , Processed in 1.526103 second(s), 50 queries .

回顶部