【问题标题】:Python - Sorting Nested Dictionary using length of nested valuesPython - 使用嵌套值的长度对嵌套字典进行排序
【发布时间】:2018-03-15 00:45:10
【问题描述】:

我有一个嵌套字典 DictA,如下所示

Dict A  
{
'a': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4,v5'}, 
'b': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'}
}

嵌套字典 'a' 和 'b' 几乎相同,除了 'k4' 的值。 如何根据上述值的长度差异对 DictA 进行排序。

我希望字典 A 如下排序,

Dict A = 
{
'b': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'},
'a': {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4,v5'}
}

请指教。

【问题讨论】:

  • 不再...抱歉,但您无法对字典进行排序。使用python3.6,您可以创建排序顺序的新字典,但您仍然无法对它们进行排序。
  • 是的,我正在尝试将字典复制到一个新的临时字典中进行操作

标签: python python-3.x sorting dictionary


【解决方案1】:

在调用排序时使用key。在此参数中,将 lambda 传递给 key 以按特定值排序。所以:

sorted_dict = sorted (DictA, key = lambda inner_dict: len (inner_dict ["k4"]))

【讨论】:

  • 谢谢。但是我有一个巨大的嵌套字典,我正在努力使用按长度迭代嵌套字典值以对其进行排序的语法。
  • 你使用的是哪个版本的 Python,它有 dicts 和 sort 方法?
  • 你能详细说明一下吗?字典总是一样深吗?等等。
  • SORRY 的意思是sorted(),我现在就修复它,想重新投票吗?
  • Python 3.6 版
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 2014-05-01
  • 1970-01-01
  • 2016-10-31
  • 2023-03-14
相关资源
最近更新 更多