我对python和编程还不太熟悉,要把这些东西记在心里可不容易。 因为我开始读的书都很无聊,我就开始胡思乱想。
我想做的是: 打开文本文件,计算每个值的频率(只是一个系统名列表),按频率对列表排序,然后返回结果。 在网上搜索了一些代码之后,我得到了这个:
file = open('C:\\Temp\\Test2.txt', 'r')
text = file.read()
file.close()
word_list = text.lower().split(None)
word_freq = {}
for word in word_list:
word_freq[word] = word_freq.get(word, 0) + 1
list = sorted(word_freq.keys())
for word in list:
print ("%-10s %d" % (word, word_freq[word]))
它可以工作,但它按列表中的单词/系统名进行排序:
pc05010 3
pc05012 1
pc05013 8
pc05014 2
我想要这样:
pc05013 8
pc05010 3
pc05014 2
pc05012 1
现在,我搜索了数小时的按值排序功能。我打赌很容易,但我什么也没找到。
对于我的初学者来说,这和这句话有关:
list = sorted(word_freq.keys())
我想也许是:
list = sorted(word_freq.values())
但不是。。。。 看到关于这门语言的大量信息,我感到非常沮丧,但却不能让这么简单的事情发挥作用。
请帮忙:)
非常感谢!
使用collections.Counter帮助计数,使用^{} statement 帮助打开(和关闭)文件。
你必须在这里使用
word_freq.items()
:不要使用
list
作为变量名。看看收藏。柜台
相关问题 更多 >
编程相关推荐