QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    / {" e) j6 o& r  F  D( Gdict的子类,计算可hash的对象  l3 P. ?4 T/ w3 l0 s
    请点击Counter3 W& `! i/ L9 @1 F1 b4 U$ p$ u

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。8 V% N0 K* C( e( q6 ~: F+ @1 S

    1. from collections import Counter
      . |( J& z% Q( _4 o5 m
    2. 0 `+ E' k8 M6 o. L
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]+ W+ A  u1 K1 k8 C
    4. dic = Counter(list1)
      ; f7 k+ `8 y# T3 V/ T
    5. print(dic)
      ) l3 y\" t7 N8 z5 o9 E! n
    6. #结果:次数是从高到低的* e! A, i: G: u\" h
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      & a/ c2 @  s5 q  B: f2 T
    8. ' _- k0 [) G' a
    9. print(dict(dic))0 {! |' _* W\" {5 E$ G' a* F
    10. #结果:按字母顺序排序的
      : h% R1 C7 r& X4 g& M* V$ `3 c. y
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}$ M. [* M' g+ [0 V

    12. , R, s- ]2 o. L: m  U+ y0 I% H% I
    13. print(dic.items()) #dic.items()获取字典的key和value
      5 k1 r9 |6 X5 `4 t
    14. #结果:按字母顺序排序的% `& `  w6 g& j, L2 X% I
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      ( s( P' q8 }8 o+ ~5 o
    16. 2 k3 d; ~6 M* y) L9 |# M
    17. print(dic.keys()): L6 @! Z* i/ g* \) C! \4 c: [
    18. #结果:
      ! B; @; L6 h6 A5 U. _- f/ v' \2 j
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      2 I4 D\" \0 i! @' Z
    20. ! J- ?$ o) Z7 m, O9 ]3 |
    21. print(dic.values())
      8 T' ~$ S7 ~$ a0 K# L  F& B6 D2 ~
    22. #结果:
      % D+ F$ X( b7 S5 N, u0 M
    23. #dict_values([3, 1, 2, 2, 3])* M) P8 \5 Y( X9 ?( z2 k
    24.   G2 v/ ?; F: p' F- X' J
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      ( U$ l; G$ B4 h8 Q
    26. #结果:按统计次数降序排序- d: o0 n. J  S, [6 d+ O3 @
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]! Y$ X\" h( V5 O\" E0 v
    28. 7 _0 n+ B4 Q+ i' U$ |( f5 b& e
    29. for i, v in dic.items():1 F7 T0 r) S* ^8 r
    30.     if v == 1:4 T, J$ y$ U  g; J( t- r) e
    31.         print(i)5 n/ \( X7 @1 @' k6 j  h7 i
    32. #结果:+ Q, v! C\" U1 z0 S( F
    33. #b! f( b! F% w) Y. Y5 p
    复制代码

* r; Y. I* [' v* \6 @
( o7 _% t, w, n8 t3 ?
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-5-26 00:17 , Processed in 0.591955 second(s), 50 queries .

回顶部