【问题标题】:Combining a list and multiple dictionaries to nested dictionary - python将列表和多个字典组合到嵌套字典 - python
【发布时间】:2020-12-17 16:41:58
【问题描述】:

我想从一个列表中创建一个嵌套字典,该列表应该是作为该嵌套字典的值的键和字典。

输入:

l = [key1, key2, key3]

d1 = {string11:value11, string12:value12, string13:value13}
d2 = {string21:value21, string22:value22, string23:value23}
d3 = {string31:value31, string32:value32, string33:value33}

输出:

{key1 : {string11:value11, string12:value12, string13:value13}, key2 : {string21:value21, string22:value22, string23:value23}, key3 : {string31:value31, string32:value32, string33:value33}}

到目前为止,我尝试压缩列表和字典,但这会创建另一个字典,而不是嵌套字典。

ld = dict(zip(l,d))

我需要先创建一个 d1,d2,d3 的列表吗?那么如何将l 和字典列表结合起来呢?

【问题讨论】:

  • ld = dict(zip(l,[d1, d2, d3]))
  • 一开始为什么会有这么多具有​​相同dict结构的变量?为什么不将它们创建为嵌套字典?

标签: python dictionary


【解决方案1】:

是的,您需要先创建 d 列表

dict(zip(l, [d1, d2, d3]))

当您将字典作为迭代器传入时,它的值将被迭代(不包括键)。因此,为什么dict(zip(l, d1)) 会生成单个字典而不是嵌套字典。

【讨论】:

    【解决方案2】:

    有很多方法。例如,您可以使用 dict 理解:

    ld = {k: d for k, d in zip(l, [d1, d2, d3])}
    

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2022-01-19
      • 1970-01-01
      • 2011-07-31
      • 2013-02-19
      • 2021-05-10
      • 2017-01-20
      • 1970-01-01
      • 2021-05-17
      相关资源
      最近更新 更多