我有一本字典,其中的值也是字典。我想按值字典的值对主字典的键/值进行排序(在示例中按日期)。
示例:
a = {
1: {'Text': 'Test1', 'Date': '2021-05-11'},
2: {'Text': 'Test2', 'Date': '2021-12-12'},
3: {'Text': 'Test3', 'Date': '2021-01-01'}
}
有序对象应如下所示:
a = {
3: {'Text': 'Test3', 'Date': '2021-01-01'},
1: {'Text': 'Test1', 'Date': '2021-05-11'},
2: {'Text': 'Test2', 'Date': '2021-12-12'}
}
我成功地用字典列表做到了这一点:
a = [
{'ID': 1, 'Text': 'Test1', 'Date': '2021-05-11'},
{'ID': 2, 'Text': 'Test2', 'Date': '2021-12-12'},
{'ID': 3, 'Text': 'Test3', 'Date': '2021-01-01'},
]
a = sorted(a, key=lambda k: k['Date'])
但是我无法用字典的字典来解决这个问题。也许有人可以指出我正确的方向。
提前致谢。 弗兰克
最佳答案
您需要使用a.items()
,然后将 key 用作key=lambda x:x[1]['Date']
。 x
的第二个元素是值。
>>> a
{1: {'Text': 'Test1', 'Date': '2021-05-11'}, 2: {'Text': 'Test2', 'Date': '2021-12-12'}, 3: {'Text': 'Test3', 'Date': '2021-01-01'}}
>>> dict(sorted(a.items(), key=lambda x:x[1]['Date']))
{3: {'Text': 'Test3', 'Date': '2021-01-01'}, 1: {'Text': 'Test1', 'Date': '2021-05-11'}, 2: {'Text': 'Test2', 'Date': '2021-12-12'}}
关于python - 按子词典的值对词典的词典进行排序/排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67345086/