python学习——采用sorted方法对字典的键、值进行排序

来源:互联网 发布:怎样在淘宝上进货 编辑:程序博客网 时间:2024/06/08 17:39

通过sorted方法可以对字典的键或者值进行排序。

1、问题的提出

已知某随机数列中[1,3,4,6,3,3,4,6,8,4...],想要统计出现频率最高的三个数字以及出现的次数。

2、生成随机数列

通过列表解析生成一个随机数列,随机数生成采用random模块中的randint方法。

import randomdata = [random.randint(1,10) for i in range(30)]print(data)

得到结果:

[8, 8, 6, 3, 6, 6, 4, 4, 5, 7, 1, 2, 3, 10, 7, 3, 5, 6, 7, 7, 3, 1, 3, 3, 2, 1, 7, 1, 9, 1]

3、统计每个数字出现的次数

采用字典的方法统计,键为data数据中的元素,值初始设定为0

dict_org = dict.fromkeys(data, 0)print(dict_org)

得到结果为:

{8: 0, 6: 0, 3: 0, 4: 0, 5: 0, 7: 0, 1: 0, 2: 0, 10: 0, 9: 0}

4、统计随机数列data中每个元素出现的次数

采用循环的方法,统计随机数列data中每个元素出现的次数

for i in data:    dict_org[i] += 1print(dict_org)

得到结果为:

{8: 2, 6: 4, 3: 6, 4: 2, 5: 2, 7: 5, 1: 5, 2: 2, 10: 1, 9: 1}

5、采用sorted方法对该字典值进行排序

dict_result = sorted(dict_org.items(), key = lambad b : b[1], reverse = True)print(dict_result)

得到结果为:

[(3, 6), (7, 5), (1, 5), (6, 4), (8, 2), (4, 2), (5, 2), (2, 2), (10, 1), (9, 1)]

此处采用sorted方法对字典的值进行排序:

dict_org.items() 得到[(键,值)]的列表。
然后用sorted方法,通过key这个参数,指定排序是按照value,也就是第一个元素d[1]的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。

如果需要对字典的键进行排序,则将key改成d[0]即可。

————————————————————————————
所有程序如下:

import randomdata = [random.randint(1,10) for i in range(30)]print('随机数列为:{}'.format(data))dict_org = dict.fromkeys(data, 0)print('设定字典初始值:{}'.format(dict_org))for i in data:    dict_org[i] += 1print('统计元素出现次数:{}'.format(dict_org))dict_result = sorted(dict_org.items(), key = lambda b : b[1], reverse = True)print('对字典进行排序:{}'.format(dict_result))

结果为:

随机数列为:[8, 8, 6, 3, 6, 6, 4, 4, 5, 7, 1, 2, 3, 10, 7, 3, 5, 6, 7, 7, 3, 1, 3, 3, 2, 1, 7, 1, 9, 1]设定字典初始值:{8: 0, 6: 0, 3: 0, 4: 0, 5: 0, 7: 0, 1: 0, 2: 0, 10: 0, 9: 0}统计元素出现次数:{8: 2, 6: 4, 3: 6, 4: 2, 5: 2, 7: 5, 1: 5, 2: 2, 10: 1, 9: 1}对字典进行排序:[(3, 6), (7, 5), (1, 5), (6, 4), (8, 2), (4, 2), (5, 2), (2, 2), (10, 1), (9, 1)]
阅读全文
1 0
原创粉丝点击