python - 如何表示已排序的字典?

标签 python sorting dictionary

我试图按值对字典进行排序,我看到了这篇文章: 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/

相关文章:

python - Networkx 不同层的六方晶格

python - Django 无法上传到 777 权限文件夹

python - PyQt 从 TableView 获取带有标题标签的单元格

python - 如何在 python 中创建内存对齐缓冲区,如 C 中的 posix_memalign

python - 如何使用先前字典中的键和值创建字典?

mongodb - 将序列号添加到来自 mongodb 查询的项目

c - 如何对结构的二维动态数组进行排序

sorting - 对数字子字段的 GNU `sort(1)` 感到困惑

C++ 11 将自定义哈希函数传递给 unordered_map

python - KeyError 在 Python 中使用字典