QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter5 ~0 S: a- p% R3 B0 @
    dict的子类,计算可hash的对象$ s6 h. T( W% ~7 N- S# F
    请点击Counter
    " i5 F8 a6 {, I: n) b' P1 _# Q

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    8 L. F: o! e; Z0 ^$ v

    1. from collections import Counter3 ~8 Z0 |! i( Q: j! Y# U6 t7 \

    2. . Q% q# m) S( O- @, V
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      # N* ^/ G$ D* F* z* _
    4. dic = Counter(list1)3 K0 M/ l/ ?& n7 \\" o& {. i5 ]8 f6 `
    5. print(dic)4 m: k: D3 p# T  [\" d# L
    6. #结果:次数是从高到低的9 L: ^( g& W! P+ A! M7 S
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})/ Z1 d! u8 J8 j% \
    8. 3 G+ y' f# [) S7 i
    9. print(dict(dic))
      ' V( `  [* N. ?& ^
    10. #结果:按字母顺序排序的) U1 Z: Y- ?8 ^5 q8 U4 V
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}
      2 `$ |# j1 U  }: |7 e

    12. 9 A\" k; h& H/ k; X! W4 ?6 |3 L, J4 M
    13. print(dic.items()) #dic.items()获取字典的key和value  {3 O6 _! t6 Q
    14. #结果:按字母顺序排序的
      4 ^. {# i4 U# Z
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)])
      ( |: H* w. m+ ]9 M3 W/ L. R

    16. 3 t* s1 O% k* u$ ^0 c( F  m
    17. print(dic.keys())+ q6 G# H# a\" L- V! v( I/ N8 ^& h* V
    18. #结果:) u/ V% P\" D- J+ E5 s+ p$ R2 u
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])1 {. Q2 f5 N8 E  _

    20. 4 x\" x8 t4 H+ J6 H( i0 r
    21. print(dic.values())3 w3 Q. i: u+ o  u/ w\" g
    22. #结果:, d  s6 h# h- I/ C3 }) d
    23. #dict_values([3, 1, 2, 2, 3])
      ' K$ x, G* _5 l4 O  L9 T3 r\" W! j
    24. 2 J( k- W9 k* C* t
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))
      1 w$ z4 Y5 U3 E4 J( A
    26. #结果:按统计次数降序排序
      1 H4 V: G: z$ J2 ^
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      9 l1 B\" r% e1 E2 W7 x

    28. ; I' r7 Q+ E& O# u7 o' o
    29. for i, v in dic.items():/ y4 q4 {% r% p( e# q) a
    30.     if v == 1:* g0 \# Y; y7 p4 L
    31.         print(i)  g/ |) `: N1 ~3 s
    32. #结果:0 x+ @( \+ S5 ~7 `3 f3 p
    33. #b
      / y2 F7 G* r  q9 E. m
    复制代码
4 ^6 L. t. L0 N7 j9 N

7 n, z+ h/ Y8 g! p
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 17:23 , Processed in 0.419386 second(s), 50 queries .

回顶部