|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- '''
- 目的:统计一个随机列表中每个元素出现的频度以字典的形式显示,
- 然后根据频度降序,并筛选出最大的前三个
- '''
- #方法一:传统方法sorted+列表推导式
- from random import randint
- list_a = [randint(0,5) for x in range(10)]
- print(list_a)
- #以列表list_a元素作为key,0作为vaule创建一个字典dict_a
- dict_a = dict.fromkeys(list_a,0)
- #遍历列表list_a的元素更新字典key对应的vaule
- for x in list_a:
- dict_a[x]+=1
- print(dict_a)
- #以字典vaule的值进行降序排序生成列表list_b
- list_b = sorted(dict_a.items(),key = lambda x:x[1],reverse = True)
- print(list_b)
- #筛选出前三个生成字典dict_b
- dict_b= {list_b[x][0]:list_b[x][1] for x in range(3)}
- print(dict_b)
- #方法二:使用Counter构造器
- from random import randint
- from collections import Counter
- list_a = [randint(0,5) for x in range(10)]
- print(list_a)
- counter_a = Counter(list_a)
- print(counter_a)
- list_b = counter_a.most_common(3)
- dict_b = dict(list_b)
- print(dict_b)
- '''
- 提问与思考:
- 1、字典在sorted后返回的列表可以dict()成字典,字典不能list成列表(只有key添加到列表)
- 2、Counter(计数器):用于追踪值的出现次数
- 3、Counter类继承dict类
- '''
复制代码 |
|