我试图按值对字典进行排序,我看到了这篇文章: Sort a Python dictionary by value
我只需要获取列表中具有较大值的键,而不是元组中的键,所以我写了这个(看起来有点笨拙)。 但如果 2 个键具有相同的值,我需要按字母顺序对它们进行排序。
这就是我尝试做的:
import operator
final_sort=[]
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
for item in sorted_x[::-1]:
final_sort.append(item[0])
但这仅适用于数字值条件。
例如:
inp : x = {'a': 2, 'b': 4, 'c': 6, 'd': 6, 'e': 0}
out : ['c', 'd', 'b', 'a', 'e']
最佳答案
迭代字典会产生键;您可以将字典本身传递给sorted
。
>>> x = {'a': 2, 'b': 4, 'c': 6, 'd': 6, 'e': 0}
>>> sorted(x, key=lambda key: (-x[key], key))
['c', 'd', 'b', 'a', 'e']
关于python - 如何表示已排序的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34462815/