Re:从零开始的代码生活 2021-07-11 18:13 采纳率: 0%
浏览 85

Python中多重嵌套的字典如何排序?

类似于这样的字典:

s = {'1':{'a':{'1':1},
          'c':{'3':3},
          'b':{'2':2},
          'd':{'5':5}
          }
     }

我想让它按照第一个值的键进行升序排序,也就是说按照‘a,b,c,d’进行排序,最后输出结果为:

s = {'1':{'a':{'1':1},
          'b':{'2':2},
          'c':{'3':3},
          'd':{'5':5}
          }
     }

如何用代码解决这个问题?

  • 写回答

1条回答 默认 最新

  • vigiles 2021-07-11 19:03
    关注

    是不是你给的代码示例不准确。大概的给你写个例子:

    # 字典的有序无序:https://www.cnblogs.com/yibeimingyue/p/9977164.html
    
    # 情景1
    dict0 = {'a': {'1': 1},
             'c': {'3': 3},
             'b': {'2': 2},
             'd': {'5': 5}
             }
    dict0_keys = sorted(dict0.keys())
    print(dict0_keys)  
    # ['a', 'b', 'c', 'd']
    
    # 情景2
    dict1 = {
        'a': {'key': 3, 'value': 3},
        'c': {'key': 2, 'value': 2},
        'b': {'key': 1, 'value': 1},
        'd': {'key': 5, 'value': 5}
    }
    dict1_keys = sorted(dict1, key=lambda item: dict1[item]['key'])
    print(dict1_keys) 
    # ['b', 'c', 'a', 'd']
    
    # 根据有有序的key,创建新的dict
    dict2 = {}
    for k in dict1_keys:
        dict2.update({k: dict1.get(k)})
    print(dict2) 
    # {'b': {'key': 1, 'value': 1}, 'c': {'key': 2, 'value': 2}, 'a': {'key': 3, 'value': 3}, 'd': {'key': 5, 'value': 5}}
    
    评论

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题