QQ登录

只需要一步,快速开始

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

Python collections模块之Counter()详解

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-20 11:27 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
  • 计数器(Counter' N% Y6 U! P5 s1 z2 t+ b  }
    dict的子类,计算可hash的对象# ~. n1 Z% g" U( r+ \) C% k* w. f7 V& a
    请点击Counter
    - Y+ b# c+ F  ?, o

    Counter()

    主要功能:可以支持方便、快速的计数,将元素数量统计,然后计数并返回一个字典,键为元素,值为元素个数。
    , t2 R/ |2 b9 O8 w# ]: {

    1. from collections import Counter
      ( m) g% R# h3 Q
    2. ! n/ V0 y: E2 W) x- t\" g
    3. list1 = ["a", "a", "a", "b", "c", "c", "f", "g", "g", "g", "f"]
      9 V3 ^* P& Y; ~3 `
    4. dic = Counter(list1)
      ( a5 v5 ^$ ^5 n3 x\" I
    5. print(dic), y$ k! h6 m( R& J' B! Q
    6. #结果:次数是从高到低的
      ! |  M6 E- W  S5 G
    7. #Counter({'a': 3, 'g': 3, 'c': 2, 'f': 2, 'b': 1})
      # S' W; z' C& h+ Q

    8. 6 U+ W' l- |9 Q$ m
    9. print(dict(dic))' @/ i; a+ U4 q5 y: ^8 `+ P* `& f
    10. #结果:按字母顺序排序的
      ' w6 W5 i6 L: c* _# a! e/ ]0 I2 Q
    11. #{'a': 3, 'b': 1, 'c': 2, 'f': 2, 'g': 3}) w2 C# j: p) [\" U& ~
    12. # }( f\" h\" \' R6 a0 p
    13. print(dic.items()) #dic.items()获取字典的key和value& O  Y( |! ~- z
    14. #结果:按字母顺序排序的
      / N! f2 z! v9 m! z- N' D6 |  L; m* }
    15. #dict_items([('a', 3), ('b', 1), ('c', 2), ('f', 2), ('g', 3)]). _, V& t5 X9 G0 Z. `0 t6 s: T+ C
    16. 5 l- a  K+ ^( ]( A2 ^\" E
    17. print(dic.keys())8 Y% G\" a* B: Y* f+ F5 u2 H$ E
    18. #结果:7 a6 ^& n' c0 F
    19. #dict_keys(['a', 'b', 'c', 'f', 'g'])7 p) K' g& x* o
    20. & `* z+ u. T' _' V
    21. print(dic.values())
      6 \! N% _3 e7 F# H- J# n
    22. #结果:
      , i9 |$ q* X. Y3 M, K* x& \
    23. #dict_values([3, 1, 2, 2, 3])
      8 a& g+ t9 @& D4 X0 V9 `
    24. 1 _4 f: `! K8 l
    25. print(sorted(dic.items(), key=lambda s: (-s[1])))\" Z0 w4 K/ g7 b& s+ a5 i% _5 ^
    26. #结果:按统计次数降序排序
      . F. t0 Q& n1 X$ T# N  [
    27. #[('a', 3), ('g', 3), ('c', 2), ('f', 2), ('b', 1)]
      & d+ F+ q7 s3 q2 R  C
    28. 2 g2 |, i0 g3 k' [1 T' r8 |% W
    29. for i, v in dic.items():
      ! [# L, \$ z9 w0 q3 ~& _/ ^9 N0 K; _' y
    30.     if v == 1:5 z) v' I  ^( {5 G: O! a/ `
    31.         print(i)  |# R* m- v9 z& r! \
    32. #结果:0 x. ~( I. ?( D& X, B: n' h, ^
    33. #b
      . i: R7 |' k\" Z  E5 l
    复制代码

1 ^/ y/ f0 b. h6 i% D+ H
  j  a. z, ~; N
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-16 13:57 , Processed in 0.422429 second(s), 51 queries .

回顶部