尝试编写程序,根据用户想要查看的内容,在列表中打印 n 最常见的项目,如果最后的项目具有相同的频率,则打印更多。
这就是我写的:
ys$~.
问题在于,只要运行该print语句,它就会打印 count()的所有行。
例如,如果用户只想打印最常见的值:
s/A.*/\~\~&\~\~/
最常见的值是 word1 和 word2 之间的关系 - 因为它们都出现两次。所以输出将是
num = int(input("Enter Number"))
i = 0
wordsInList = [word1, word2, word2, word3, word1]
catagory = Counter(list)
catagory.keys()
for key, value in catagory.items(): #set the frequency to value and word to key
if i <= num or lastValue == value: #(Issue with code)If the required number of values have been printed, stop printing
print('{:<5d}{:<15s}'.format(value, key))
lastValue = value
i =+ 1
如果用户输入 n = 2 ,输出将是相同的,因为它们是2个最常用的单词。但是,如果用户输入 n = 3 ,则下面是输出:
n = 1
答案 0 :(得分:0)
您可以尝试这种方法:
n = 3
sorted_dict_list = sorted(category.items(), key = lambda x:x[1], reverse = True)
last_value = sorted_dict_list[0][1]
for key, value in sorted_dict_list:
if (value == last_value - n):
break
print("{},{}".format(value, key))