QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |正序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    ' b9 Q' t, }9 s5 @, [) }dict的子类,计算可hash的对象% r; K3 I* ?- G$ @# O# c* G& r. w
    请点击Counter
    + ^* Z8 n: [- h

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    ' @3 E; C" P& O. g; Y

    1. from collections import Counter8 S+ V* J  c* m2 @0 {
    2. ) c: _3 C4 F6 O9 H2 y+ n0 }, f
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"], `: h' k1 C6 p  N5 ]9 U! w  k
    4. dic = Counter(list1)
      4 l- t2 {. `6 p
    5. print(dic)
      : Z( O2 p( u! r# }# f4 i# G
    6. #结果:次数是从高到低的
      . @; I4 V+ i: @3 g9 A! s, C
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      $ _+ }; f; ~8 j3 M2 `' U2 N; q+ y

    8. 4 J. I9 I7 G, @
    9. print(dict(dic))( X0 B5 {; t3 d3 k\" s
    10. #结果:按字母顺序排序的
      / h, O% J. ]2 e( ^, ?
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}. U2 P1 V1 Q& m- q6 Q% Q; D
    12. / L& s4 k3 I- Q; P1 w9 H3 X
    13. print(dic.items()) #dic.items()获取字典的key和value
      . m! |7 U% ^; `/ Q6 ]# a
    14. #结果:按字母顺序排序的
      . S# q\" j4 U( ], V' ?2 B5 F
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])! R! |- Q7 `3 B# I, Q: A  F9 A, a

    16. ; C$ ?2 F0 S( Q; |
    17. print(dic.keys())
      0 @\" q3 J6 ?' s7 b9 x( u
    18. #结果:& `, M9 I( W  H' \# X
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])
      5 G) k, W3 M0 {  [
    20. 6 x% P( E8 q' Z, f1 O
    21. print(dic.values())
      ! a6 H. m* ]2 b7 e8 R( d9 n
    22. #结果:
      : l% h2 m\" L. Z# Y9 Q! _+ A: y* S
    23. #dict_values([3, 1, 2, 2, 3]). @) S3 `  ?, e/ y( B
    24. & G- e. D, ?1 b/ C
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      6 U4 b0 U, P3 M# o
    26. #结果:按统计次数降序排序
      1 d9 H4 h# ~6 W7 n4 k$ A
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      * m9 O4 H0 j% d
    28. & ^4 Q6 s$ R( U- Z4 H0 `; x
    29. for i, v in dic.items():+ R% o/ w( \; z& R+ c5 G) j
    30.     if v == 1:
      / L1 Z7 d, T; d) m2 i\" L
    31.         print(i)6 s8 r+ }; h2 L2 L' m  [
    32. #结果:; e& a6 B: y( r6 a1 ]
    33. #b
      ' R5 H% n+ b' ]7 x, F9 [7 d
    复制代码
* p- f+ b' x) m

$ U8 s) P6 t0 j
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-6-17 01:47 , Processed in 0.413187 second(s), 51 queries .

回顶部