QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  • 计数器(Counter" R* N+ a0 X" D" g
    dict的子类,计算可hash的对象
    ( b6 x4 b! n! D$ q6 [' r* a. t请点击Counter
    7 R* w% V# ^0 }& ^! `

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    5 E  i$ S; l8 {* F1 o0 C( Z

    1. from collections import Counter
      3 z1 X( z9 g1 |. ^* G4 {- h
    2. 3 W/ r4 D' K3 r+ _
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]/ I\" }1 i' A, h7 @) C4 l& w9 n\" W  \& w
    4. dic = Counter(list1)
      . H% h* i, ^  l- C; E
    5. print(dic)2 C% _$ T3 I# T\" p
    6. #结果:次数是从高到低的4 {' C; p% k! |5 Y2 O; K4 A% R
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
        s7 P& H/ B# [

    8. 6 Q! w+ ^9 J, J, \8 V5 U
    9. print(dict(dic)); e. l( L9 X  ]
    10. #结果:按字母顺序排序的4 @+ L6 @2 K$ R* P/ L+ E  F
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}. u1 N: P: d/ |% @, b

    12. / m% C6 w+ d, D; w+ x5 j1 F
    13. print(dic.items()) #dic.items()获取字典的key和value
      & Y) q; R. C+ ?6 ?5 z4 d$ _
    14. #结果:按字母顺序排序的  {. [4 b/ y% O, ~6 e: A2 D
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      7 b% {8 o, w! C6 V$ u7 w9 e

    16. % X1 H# g# u5 F0 A  ]& ?
    17. print(dic.keys()): I8 R* B2 l1 l$ Z6 H' w
    18. #结果:\" V6 J3 a2 ~! R
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      4 _0 R* b2 ~' |! M% S3 N

    20. \" @# P6 Z$ _8 r; f' U4 l5 k) M( L
    21. print(dic.values())
      0 c. Q5 Z) J9 G* T
    22. #结果:% S/ W  D; ]& ^9 I9 d: t9 F4 f0 h; H
    23. #dict_values([3, 1, 2, 2, 3])- @: S5 p  y: B: I, U

    24. 1 p  b/ ~3 |- G. g6 m0 R. ]
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      / _* v! ^' R$ K, n- s
    26. #结果:按统计次数降序排序
      ! d. U5 Q6 P. X! x2 j: k' Y8 Z4 _
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]! C1 ^3 V5 h2 ^3 I1 h

    28. & T, Q7 ~+ p! ^8 Y6 Z9 _
    29. for i, v in dic.items():
      \" u3 D4 V) S. a0 j
    30.     if v == 1:
      ( O4 K. r  h+ \8 F% y\" k
    31.         print(i)( h. Y* c: p- H\" z4 e
    32. #结果:
      * U; ?$ Y. T( w. W: b4 V
    33. #b
      \" R8 Y( L& C! h& T
    复制代码

; K" J7 U% T/ k9 p* M
: r+ o( O4 |5 |7 a) u/ s& y
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-13 17:31 , Processed in 0.416380 second(s), 51 queries .

回顶部