QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter8 U: q& \( N$ |2 K
    dict的子类,计算可hash的对象
    # G4 ~3 C: s6 R2 P$ t" O请点击Counter4 R# L) l1 E; l: k) ], `3 o

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    & X7 o  p$ Z9 S/ I. q2 ~

    1. from collections import Counter; U1 [' Q3 M( x0 t
    2. $ Q; I* q& y* U. n1 ~* y9 r
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      . |% y. l+ d: L/ r
    4. dic = Counter(list1)\" l* f& ?3 z+ U
    5. print(dic)
      $ L0 u\" C0 j% G8 T
    6. #结果:次数是从高到低的$ Y\" A8 @  W. @
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})3 U) d; @) _, T( M7 R3 u
    8. 0 n( `8 z( v# V: t\" h! S3 C  O8 u, b3 H, f
    9. print(dict(dic))
      7 F1 ?1 u. D4 D8 t
    10. #结果:按字母顺序排序的
      ) v- ^6 _. t; e
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      ! r! B5 y0 a/ `

    12. 2 S4 y6 F6 C7 W) S9 p
    13. print(dic.items()) #dic.items()获取字典的key和value5 b8 p* E3 s  h3 ^5 L) w+ q; I
    14. #结果:按字母顺序排序的+ p  K# V; c\" ~$ g
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
        Q/ r\" X$ y, m

    16. ' w; \& A, ^8 F) E; t; |: L/ ^# W
    17. print(dic.keys())$ f3 i  r; G6 c. j4 o+ Z7 J
    18. #结果:9 [' V7 h6 ^2 T2 f2 ]$ _7 j# d, F  n
    19. #dict_keys(['a', 'b', 'c', 'f', 'g']). u: Z( Y2 g7 r- a* j
    20. . k$ l# H! s* d1 ^- ]
    21. print(dic.values())
      1 }) H( U# w\" ?; V9 ^+ u* G
    22. #结果:. N& W2 X& E9 k* S  Z3 X4 C* }7 V9 i
    23. #dict_values([3, 1, 2, 2, 3])
      + t: r4 T4 p, ?0 c

    24. 3 p: z6 a3 ]7 N\" a2 W7 U. ~
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))' ~' C: Q4 m$ ], D  g( n
    26. #结果:按统计次数降序排序
      3 v* e& g7 T/ r: |% Y
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      \" L! f4 B' p1 R; ~
    28. : R: @9 y8 q- H: ~0 [, d( i$ e
    29. for i, v in dic.items():
      * r9 n: g6 H3 P. y0 y  E. Q
    30.     if v == 1:) D/ i. a$ }  |7 s0 z0 H$ \0 r
    31.         print(i)5 y# G- M$ O5 u$ h+ w. a8 g0 B4 V
    32. #结果:8 Y  p) B0 L0 H8 p* Y( A
    33. #b, E1 T3 z' {# A( R, q+ J
    复制代码
% z  j) r7 m! r5 t' }& {
( ]2 H' S+ u) o2 ?4 P; z& 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-8-25 21:57 , Processed in 0.332031 second(s), 51 queries .

回顶部