QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    + _6 r- ~8 _2 k: Vdict的子类,计算可hash的对象# L2 N% N& D1 P
    请点击Counter2 c9 C. ^! w2 E! H  b6 e

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    3 |: @. O% ?! Z, S4 X! R

    1. from collections import Counter\" Z3 V  g( ^4 |0 O6 K

    2. * C\" R. K  }% h/ C& j9 W, x+ ^
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]! v' @3 d; m. C6 q8 j; H
    4. dic = Counter(list1)
      - m4 v9 A' N- p- A( j$ d0 L' j
    5. print(dic)
      9 `/ s% }1 c% m5 i# @
    6. #结果:次数是从高到低的
      ( [6 O. q1 i  \! h
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})/ B$ A: c9 W4 ^: f7 H

    8. ! D; m8 b$ e4 T6 e
    9. print(dict(dic))
      5 E1 e( I- ?* J3 J- @# G
    10. #结果:按字母顺序排序的
      # D0 G; d  m: |2 h/ b
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}/ b' A) T! u1 [* y

    12. ) u! n+ D* m0 e5 p# R
    13. print(dic.items()) #dic.items()获取字典的key和value% j9 ?+ x! c\" Q$ }2 t$ y  m5 b3 T
    14. #结果:按字母顺序排序的
      5 U( t+ C* E0 @/ L/ ~: N1 X
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])\" ^\" M, }8 [1 @- }
    16. ; P% b( D9 E9 x7 g  K
    17. print(dic.keys())
      5 X: U' [( N, `2 W7 `9 Q& v
    18. #结果:
      % M* n5 X+ y! R9 e1 q3 {# b1 B; q, Z
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      & i* d8 T- |9 K1 p! u- J
    20. 5 {, h+ t6 j$ `\" S
    21. print(dic.values())9 A5 ~0 n0 U( d6 {' \) X
    22. #结果:% q2 r6 I1 g8 f5 e
    23. #dict_values([3, 1, 2, 2, 3])
      ) B% U\" ]+ X' O: {7 D1 j+ ~
    24. % Z3 o( h9 w* o4 U  p- m
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      2 N/ p7 ~8 x) s7 j4 B! m# q
    26. #结果:按统计次数降序排序4 F/ G0 T: o: f9 q9 r
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      $ K6 g6 _- ^, z
    28. 3 |0 f/ ^) y\" U
    29. for i, v in dic.items():
      . A1 R, }, J( @0 u
    30.     if v == 1:. J; ~1 a/ F$ f' ?5 b, P
    31.         print(i)! z. U+ v  |* _7 ?' _* J, V3 p
    32. #结果:4 Q\" Z9 X0 w% I# G/ B
    33. #b
      # a7 P' k# r% u
    复制代码

/ D6 y; a1 F) y2 J* f1 B2 v  J6 `2 {
  s+ D% x2 C! f9 T4 @0 ?
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-15 09:13 , Processed in 0.427596 second(s), 51 queries .

回顶部