对于我的作业,我正在编写一个程序,它将获取文件的内容,将其存储到字典中,计算并输出文件中每个单词的出现次数,并输出十个最常出现的单词。降序。
这是我的代码。我不想使用import运算符,但我正在尝试对字典中的内容进行排序。现在我的值按排序顺序打印,但不是前面的键。如何打印字典中的关键字,并附加出现次数,按降序排列?
done = False
while not done:
try:
print("ENTER A FILE NAME, IF NOT IN SAME FILE LOCATION AS PROGRAM, SPECIFY PATH")
input_file_name = input("Please Enter the name of your text file: ")
infile = open(input_file_name, "r")
done = True
except FileNotFoundError:
done = False
print("File not Found")
myDict = {}
file = infile.read()
line = file.split()
unwanted_chars = ".,!-_)(*&^%$#@:;'<>?/\{}[]|+=~`"
for symbol in line:
word = symbol.strip(unwanted_chars)
if word not in myDict:
myDict[word] = 0
myDict[word] = myDict[word] + 1
sortedValues = sorted(myDict.values())
print(myDict)
print(sortedValues)
infile.close()
答案 0 :(得分:0)
这样的东西?
sortedKeysAndValues = sorted(myDict.items(), key=lambda kv: -kv[1])
然后打印,
for k, v in sortedKeysAndValues:
print(k, v)
答案 1 :(得分:0)
Python 2
sorted_dict = sorted([(value,key) for (key,value) in myDict.iteritems()])
Python 3
sorted_dict = sorted([(value,key) for (key,value) in myDict.items()])
打印python 2 和 3
print([(key, value) for value, key in sorted_dict]