python - 如何在 Python 中按值对字典进行排序?

标签 python python-3.x sorting dictionary

<分区>

我只想按值对字典进行排序,但方式略有不同。

这是我的字典

issues = {
    1: {'title': 'Title 1','level': 'low'}, 
    2: {'title': 'Title 2','level': 'medium'}, 
    3: {'title': 'Title 3','level': 'high'}, 
    4: {'title': 'Title 4','level': 'low'}, 
    5: {'title': 'Title 5','level': 'medium'}, 
    6: {'title': 'Title 6','level': 'high'}
}

我想按级别(低、中、高)对上述问题进行排序。

sorted_issues = {
    1: {'title': 'Title 1','level': 'low'}, 
    4: {'title': 'Title 4','level': 'low'}, 
    2: {'title': 'Title 2','level': 'medium'}, 
    5: {'title': 'Title 5','level': 'medium'}, 
    3: {'title': 'Title 3','level': 'high'}, 
    6: {'title': 'Title 6','level': 'high'}
}

我有很多例子,但所有这些例子在值部分只有一个值。 但是这里的值不是单值它的字典

提前致谢。

最佳答案

你可以这样做

from collections import OrderedDict
issues = {
    1: {'title': 'Title 1','level': 'low'},
    2: {'title': 'Title 2','level': 'medium'},
    3: {'title': 'Title 3','level': 'high'},
    4: {'title': 'Title 4','level': 'low'},
    5: {'title': 'Title 5','level': 'medium'},
    6: {'title': 'Title 6','level': 'high'}
}
priorities = {
    'low': 1,
    'medium': 2,
    'high': 3
}
x = OrderedDict(sorted(issues.items(), key = lambda item: priorities[item[1]['level']]))
for key, value in x.items():
    print(f"{key}, {value}")
'''
1, {'title': 'Title 1', 'level': 'low'}
4, {'title': 'Title 4', 'level': 'low'}
2, {'title': 'Title 2', 'level': 'medium'}
5, {'title': 'Title 5', 'level': 'medium'}
3, {'title': 'Title 3', 'level': 'high'}
6, {'title': 'Title 6', 'level': 'high'}
'''
print(x)
'''
OrderedDict([(1, {'title': 'Title 1', 'level': 'low'}), (4, {'title': 'Title 4', 'level': 'low'}), (2, {'title': 'Title 2', 'level': 'medium'}), (5, {'title': 'Title 5', 'level': 'medium'}), (3, {'title': 'Title 3', 'level': 'high'}), (6, {'title': 'Title 6', 'level': 'high'})])
'''

关于python - 如何在 Python 中按值对字典进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62590025/

相关文章:

python - 如何将文件结构表示为 python 对象

Javascript 排序数组 - 在比较函数内调用函数

Python排序包含元组列表的类实例

python - 基于列表列表python的第一个元素的平均值

python - Numpy 数组多个掩码

python - 创建 numpy 数组的扩展 View

python - 如何在 Windows 7 中运行 python

python - Robot Framework 是有状态的还是无状态的?

python - Python 代码中标识符错误中的无效字符

java - 如何按项目值对 ListView 中的项目进行排序?