我有字典,我想将频率从最高到最低排序。如果两个单词的频率相同,则字母顺序较低的单词排在最前面。
我想使用cmp函数,但显然此函数在python 3中已弃用。
这是我所做的:
dic = {'i': 2, 'like': 2, 'so': 1, 'coding': 1}
output = [key for key, value in sorted(
dic.items(), key=itemgetter(1, 0), reverse=True)]
print(output) // ['like', 'i', 'so', 'coding']
我想要的输出是['i, 'like', 'coding', 'so' ]
您可以在排序键的第一个元素上放置-
符号以颠倒顺序:
dic = {'i': 2, 'like': 2, 'so': 1, 'coding': 1}
print([k for k, _ in sorted(dic.items(), key=lambda k: (-k[1], k[0]))])
打印:
['i', 'like', 'coding', 'so']