python - 按子词典的值对词典的词典进行排序/排序

标签 python dictionary

我有一本字典,其中的值也是字典。我想按值字典的值对主字典的键/值进行排序(在示例中按日期)。

示例:

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/

相关文章:

Python多处理设计

Unix 'which' 的 Python 模拟

python - 损失曲线分析: raw data VS normalized data (Machine learning/Keras)

python - 重新分配字典值列表

python - 如何创建嵌套字典键并从命名空间键值对列表中为它们分配值?

python - 按列表顺序打印字典

python - 如何从 pandas 数据框中的列中删除文本

dictionary - Julia double for 循环,遍历字典

java - 迭代时清除 ConcurrentHashMap 中的元素

JavaScript 数组没有正确索引?