QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter
    " ], w0 g5 l( h7 Ldict的子类,计算可hash的对象
    7 q! U1 N1 w" \! G( b1 d! v请点击Counter0 c5 P5 v; ]0 q# `3 r, x

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。: W: |  C' W6 d4 R' Y$ r3 G

    1. from collections import Counter
      ! I5 V; N# u) _$ w0 g$ v% k9 l

    2. - Z8 m9 |0 T$ _9 u4 B' y
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]! T, g1 c6 P$ J
    4. dic = Counter(list1)
      $ m' p8 r7 Q/ O+ I; l% l& \
    5. print(dic)
      9 L3 ?2 }* w9 S0 K. q4 }, _
    6. #结果:次数是从高到低的
      6 ?( [1 g% _, m5 |- k
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      5 V8 q) ^: ]' k
    8. ( C2 M4 E$ E: }6 `3 W& v6 Y
    9. print(dict(dic))
      8 f1 n- d6 M7 m1 ~, i, m8 v4 U* c& ~9 @2 a8 K
    10. #结果:按字母顺序排序的- b: O1 G; R* e\" j4 V+ }
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      5 h% Y6 b! I7 C9 Q& }- ]. N

    12. 9 _# N3 j# n. O
    13. print(dic.items()) #dic.items()获取字典的key和value8 L, q# z) y- P) ]\" A
    14. #结果:按字母顺序排序的
      3 k8 u! j7 D! \& w\" a# [6 l. ~
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])% d. S\" v* Z/ t8 W, v# L+ B
    16. - ?2 |  A  n\" q; N/ e
    17. print(dic.keys())0 T) \# T2 c2 m# b
    18. #结果:. U+ @' _) n! C. x$ E* {; k
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])4 M2 n0 C: H! K* c0 v( M
    20. 8 P( B- o0 e; q* p4 t
    21. print(dic.values())' r' b% [9 g: x: M; Y$ x
    22. #结果:/ ^# @! t4 l* P
    23. #dict_values([3, 1, 2, 2, 3])
      8 Q2 ?4 r) t& M5 x\" n\" U

    24. 1 ^% v; V/ }8 x& E( a- f. N/ N
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      & \: K4 }# P7 M: v9 X1 I; F
    26. #结果:按统计次数降序排序! s' |. X3 s7 b: }
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      + Y& R# J9 v' V7 o+ I
    28. 8 I6 \1 {9 E  f
    29. for i, v in dic.items():
      % X5 J6 s1 ^( V% ?# l# D  w
    30.     if v == 1:
      ( t, `3 v& L3 ]2 T
    31.         print(i)3 q/ @/ r1 ?. y6 q
    32. #结果:
      . ?) L6 W' X6 v  _: U! O6 \
    33. #b0 ?5 w0 O/ o, g
    复制代码
( |& F( X+ i  l8 f

: S' @$ \3 n9 M) c
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-8-5 14:28 , Processed in 0.424870 second(s), 51 queries .

回顶部