【发布时间】:2023-03-30 10:59:01
【问题描述】:
给定一个输入字典,如
{13: (3,1,7), 2: (6,4,9), 7: (5,8,4)}
得到一个输出字典,如
{2: (4,6,9), 7: (4,5,8), 13: (1,3,7)}
【问题讨论】:
-
字典(至少在 Python 的最新版本之前)未排序。你到底想做什么?
标签: 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)}
【问题讨论】:
标签: python python-3.x sorting dictionary
从 Python 3.6 开始,字典遵循插入顺序。您可以通过在 dict 项级别以及单个值内使用 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)}
【讨论】:
你可以使用理解。
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)}
【讨论】: