我只想按值对字典进行排序,但方式略有不同。
这是我的字典
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'})])
'''