鱼C论坛

 找回密码
 立即注册
查看: 1429|回复: 0

[技术交流] 【003】Python统计列表元素频度,并排序筛选

[复制链接]
发表于 2019-6-8 19:01:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. '''
  2. 目的:统计一个随机列表中每个元素出现的频度以字典的形式显示,
  3. 然后根据频度降序,并筛选出最大的前三个
  4. '''
  5. #方法一:传统方法sorted+列表推导式
  6. from random import randint
  7. list_a = [randint(0,5) for x in range(10)]
  8. print(list_a)

  9. #以列表list_a元素作为key,0作为vaule创建一个字典dict_a
  10. dict_a = dict.fromkeys(list_a,0)

  11. #遍历列表list_a的元素更新字典key对应的vaule
  12. for x in list_a:
  13.     dict_a[x]+=1
  14. print(dict_a)

  15. #以字典vaule的值进行降序排序生成列表list_b
  16. list_b = sorted(dict_a.items(),key = lambda x:x[1],reverse = True)
  17. print(list_b)

  18. #筛选出前三个生成字典dict_b
  19. dict_b= {list_b[x][0]:list_b[x][1] for x in range(3)}
  20. print(dict_b)

  21. #方法二:使用Counter构造器
  22. from random import randint
  23. from collections import Counter
  24. list_a = [randint(0,5) for x in range(10)]
  25. print(list_a)
  26. counter_a = Counter(list_a)
  27. print(counter_a)
  28. list_b = counter_a.most_common(3)
  29. dict_b = dict(list_b)
  30. print(dict_b)
  31. '''
  32. 提问与思考:
  33. 1、字典在sorted后返回的列表可以dict()成字典,字典不能list成列表(只有key添加到列表)
  34. 2、Counter(计数器):用于追踪值的出现次数
  35. 3、Counter类继承dict类
  36. '''
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 16:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表