【问题标题】:how to sort a dictionary by key first then by tuple values如何先按键排序字典,然后按元组值排序
【发布时间】: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


【解决方案1】:

从 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)}

【讨论】:

    【解决方案2】:

    你可以使用理解。

    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)}
    

    【讨论】:

      猜你喜欢
      • 2014-01-18
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2013-11-19
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多