QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2977

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter)- S: R& M% g7 B" {5 G
    dict的子类,计算可hash的对象
    2 ]. h3 h5 Y. d* _6 c3 `请点击Counter. D# G0 Q+ G$ |2 ~  n5 a

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。' ^5 ~7 F$ g. H- c- U

    1. from collections import Counter
      # {+ v) K\" i. o- U  o0 A\" y\" p

    2. 3 X\" f. c% ]6 a# p& ~
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      : T% j3 f: k* K; \\" J- ^# `5 r
    4. dic = Counter(list1)
      6 @0 ?# O; h/ F+ m6 j
    5. print(dic)\" C, y) ], v7 |
    6. #结果:次数是从高到低的& R# ?! ~& ~; C5 _
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})( H1 ~\" T& ~+ b

    8. + b2 u/ O& M) \$ m\" r8 V* H
    9. print(dict(dic)), e) g* E% R* b: T
    10. #结果:按字母顺序排序的
      4 q' x2 q+ R) q+ A! u  W/ l
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      0 M/ c6 ?- P3 M  H1 o- t- Y

    12. # a5 V0 O9 T7 ~1 ^
    13. print(dic.items()) #dic.items()获取字典的key和value
      \" n; {. Y( l; K- M) j5 D7 k
    14. #结果:按字母顺序排序的
      0 |. x% d& O2 V: q! J9 R9 p
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])' V4 @- b9 x, w$ B3 J
    16. ' O. q+ _  H+ `+ z1 z7 J  B
    17. print(dic.keys())
      . n$ F1 e+ t& \' G
    18. #结果:: F5 B4 U5 L. h' B; q  M
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])- r% o  j2 T+ }& X) u

    20. , a& |3 G1 ^% Y: t! a
    21. print(dic.values())
      2 c; D  n( i) z\" g; Z5 p3 e# E. g
    22. #结果:
      3 {\" U! L. t; M+ ]
    23. #dict_values([3, 1, 2, 2, 3])
      , M+ O' ?; Z, d/ }; w# s' N
    24. 6 B& a* E! F8 S
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))9 R: ]2 f7 E7 k5 ?6 }
    26. #结果:按统计次数降序排序
      / v7 N3 h1 w  a5 h  j
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]- Z( X. u$ {- Z7 e1 C! n. A7 Q( ?5 g

    28. * I) m; @2 p' B( j4 V1 p
    29. for i, v in dic.items():* M. A2 s, b4 Z' `
    30.     if v == 1:
      \" z/ n: y( q# W9 Q
    31.         print(i)
      ; r- Y- S( z4 n7 }- x) s5 x
    32. #结果:
      ! ~/ F7 }& v, ^- h
    33. #b
      , y' G6 b$ J# P! I
    复制代码
* s9 _4 ^" u$ c4 U

# Z9 f" x( C) _9 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-9-27 13:01 , Processed in 0.542521 second(s), 51 queries .

回顶部