QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1198

主题

4

听众

2977

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    ! a9 z0 z/ `  [dict的子类,计算可hash的对象
    ( j/ X) h# l' l请点击Counter, s) N2 u* M5 b, [9 {3 a9 Z

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。! M3 L1 w6 _  X6 \

    1. from collections import Counter! P, P4 k% j. D

    2. 8 ?0 q6 k9 x& y! E: f$ ]) L) ^
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      : i' g( k2 p/ c
    4. dic = Counter(list1)
      3 k1 F' Z, q. ?* r
    5. print(dic)5 S\" |0 r4 ^, Y\" t* l
    6. #结果:次数是从高到低的
      1 g& b- Q, `. s4 b' h
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      . b3 l7 B- L( m0 q\" O5 Q

    8. 3 D/ S9 h6 u; A4 \# G+ t
    9. print(dict(dic))2 D7 T6 O7 Y9 n  Z
    10. #结果:按字母顺序排序的; N6 l7 p. T$ d4 m0 B$ w
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}2 A; T\" e8 w4 X# z+ M; \/ d* D# D
    12. , V# L6 w0 ?6 {* W) n/ Q6 `( a
    13. print(dic.items()) #dic.items()获取字典的key和value
      / @\" A! _( q9 v5 [4 S: l
    14. #结果:按字母顺序排序的
      ; S' C5 L0 k1 r2 Z
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])% {% l  D, d\" N! ~- q
    16. % K$ h0 `4 C& ?$ b7 E
    17. print(dic.keys())( ?8 I- H  k. t6 f/ u
    18. #结果:, Q, a\" _% t* u. a  i1 D& V
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      ( _! O* f5 m7 @
    20. 8 K  c, P  G% N9 \7 }( M9 ?
    21. print(dic.values())
      * Q/ c3 A* j. j  G/ `) B: _
    22. #结果:
      4 G- Y) S- X; }! O
    23. #dict_values([3, 1, 2, 2, 3])) K+ s. f# C2 j+ A0 n+ u: I

    24. 1 U, ~, V% l3 V& P5 h. k( D! K
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      % p4 O9 D! n, T8 O
    26. #结果:按统计次数降序排序2 J4 u, J4 m8 o/ w$ a
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]\" J) l) t& D1 c0 @3 k\" Y2 F

    28. ' T* C' y5 V' T8 e1 b0 v
    29. for i, v in dic.items():
      ' D5 R( z5 E$ c: b% i
    30.     if v == 1:  B0 T) [4 [- b
    31.         print(i)
      * m+ f! i  R: O* t7 M* j
    32. #结果:, N\" I# o$ j1 r9 z
    33. #b
      \" V  m5 Y5 Z) ?& e
    复制代码

' U4 D' h8 X: }+ @& x/ Y6 W
: I0 ^2 p. D3 v- q" q' ]% @5 b
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-24 22:23 , Processed in 0.316661 second(s), 51 queries .

回顶部