QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter' P7 G. X3 [3 [3 e: ^  k& V; U+ Z) K
    dict的子类,计算可hash的对象1 P' c0 C+ q$ h* j
    请点击Counter
    2 K6 k4 \. X" i. u

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    ! O$ l) @0 f. [: P  f

    1. from collections import Counter
      9 H0 Q2 h$ F- _3 O9 e. c8 b
    2. ) Q8 A1 k( A4 r. I
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]2 |( y3 q$ A. d
    4. dic = Counter(list1)
        Z& q7 X# _9 C& [
    5. print(dic)
        J6 {/ b: a  j* o
    6. #结果:次数是从高到低的: v3 h6 n; K+ Y% @2 v( |8 w
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})6 V) |! X. N) s# @9 S6 z

    8. ; \; ~( C; z. U3 }\" S' m  j
    9. print(dict(dic))4 N4 j: T) v& g5 Z  F& c2 h# l) c
    10. #结果:按字母顺序排序的+ \8 K/ f) X  X  T
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}3 ^# r' t  c1 j
    12. 3 F/ k6 J; {, Q* a
    13. print(dic.items()) #dic.items()获取字典的key和value
      9 e: i+ A9 |' I+ j
    14. #结果:按字母顺序排序的- S. Y0 Q* Z/ }4 r; J
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      * r0 Q/ c# ?# {9 Y1 f) W
    16. + W: q5 L$ E( Q( n4 |4 e
    17. print(dic.keys())
      ; d7 B, i9 u5 Y
    18. #结果:# A2 `2 t' g6 y5 b
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      + u8 h3 l  Q2 Y# w) f/ j, R/ e

    20. 7 L; G! L/ W\" j
    21. print(dic.values())
      - U, ~  N0 ~5 }6 c$ B- u# @
    22. #结果:+ R0 ^3 t& Q8 `8 D% _
    23. #dict_values([3, 1, 2, 2, 3])
      , L; B% D7 E0 _. k& L: g( G

    24. $ G. K. A* F( o2 c) p- y4 r8 t2 N
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))# c6 Z$ E/ {9 W$ F
    26. #结果:按统计次数降序排序
      0 D, ?, L- N! G$ A, F* V( r8 }5 A* P
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      2 O' ~, C5 q( S$ n5 s1 q

    28. , x: v) c( W, B# H: y
    29. for i, v in dic.items():\" w& |. X$ {6 e
    30.     if v == 1:
      \" D; M; W4 ~8 ~
    31.         print(i)% d) ]. J1 `2 S2 t$ B
    32. #结果:  f, A& ]8 c7 w& D: H; D1 C6 Q
    33. #b; d4 _* m5 i. W, J( H
    复制代码
! s. m' W" p6 i5 X

2 Y  K% d6 r, \, l/ K9 A: C
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-7-10 16:08 , Processed in 0.471573 second(s), 51 queries .

回顶部