实战5里我们实现了对一个文本进行统计,显示出每个字出现的次数,那如果要按照出现次数从高到低进行排列,该如何处理呢?
以下是代码:
text=open('D:\pythondata\唐诗三百首.txt','r',encoding='utf-8').read()
text1=list(text)
my_dict = {}
for i in text1:
if i in my_dict:
my_dict[i] += 1
else:
my_dict[i] = 1
new_dict=sorted(my_dict.items(),key=lambda d:d[1],reverse=True)
print(new_dict)
我们可以看出,和上一个代码的区别是:多了第10行代码,这行代码比较复杂,想要了解的可以去百度一下 python sorted函数 以及 lambda的用法
我们现在只要了解第10行代码的作用就是将原有字典按照值的大小从高到低进行排列就行了。
那如果希望将原有字典按照值的大小从低到高进行排列呢?
只要将 ,reverse=True删除即可。这样第10行就变成了
new_dict=sorted(my_dict.items(),key=lambda d:d[1])
其它代码保持不动。