如何先按键然后按元组值对字典排序

时间:2020-01-15 05:10:24

标签: python python-3.x sorting dictionary

给出输入字典,例如

{13: (3,1,7), 2: (6,4,9), 7: (5,8,4)}

获取类似的输出字典

{2: (4,6,9), 7: (4,5,8), 13: (1,3,7)}

2 个答案:

答案 0 :(得分:3)

从Python 3.6开始,字典遵循插入顺序。您可以通过在两个字典项的级别以及各个值内使用sorted来完成所需的操作:

>>> dict(sorted((k, tuple(sorted(v))) for (k, v) in a.items()))
{2: (4, 6, 9), 7: (4, 5, 8), 13: (1, 3, 7)}

答案 1 :(得分:1)

您可以使用理解力。

a = {13: (3,1,7), 2: (6,4,9), 7: (5,8,4)}
sorted_a = {key:tuple(sorted(a[key])) for key in sorted(a)}