【发布时间】:2016-06-15 03:15:36
【问题描述】:
我有一个文本文件,其词频采用以下格式:
word<space>freq
其中 freq 是一个数字。我想对文件进行排序,例如频率按降序排列。为此,我尝试了以下方法:
将文件读入字典:
kvp = {}
d = {}
with open("/home/melvyn/word_freq.txt") as myfile:
for line in myfile:
word, freq = line.partition(" ")[::2]
kvp[word.strip()] = int(freq)
按值对字典进行排序:
d = sorted(kvp.items(), key=lambda x:x[1])
将排序后的字典写入另一个文本文件:
with open('/home/melvyn/word_freq_sorted.txt', 'w') as f:
json.dump(d, f)
我有以下问题: 1. 没有进行排序。为什么? 2. 如何在执行 json.dump 时在每个键值对之间添加新行?有没有更简洁的方法将字典内容写入文本文件?
【问题讨论】:
-
糟糕!错字。我确实转储了。对不起。现在编辑问题。
标签: python sorting dictionary