【问题标题】:creating dictionary with nested loop使用嵌套循环创建字典
【发布时间】:2020-09-23 11:26:37
【问题描述】:

我尝试创建带有嵌套循环的字典,但失败了。不知道怎么回事:

dict={}
for i in range(0,4):
        node_1=str(i)
        for j in range(0,4):
            node_2=str(j)
            dict[node_1]=[node_2]         
print(dict)

它应该已经创建了:

{'0':['1','2','3'],'1':['0','2','3'],'2':['0','1','3']}

【问题讨论】:

  • 请将您的代码格式化为代码。现在不可读

标签: python loops for-loop nested


【解决方案1】:

在您的代码中,您将使用新的 j 值覆盖以前的 j 值。相反,您应该将其附加到列表中。

mydict = {}
for i in range(0,4):
    node_1 = str(i)
    mydict[node_1] = [] # assign empty list
    for j in range(0,4):
        node_2 = str(j)
        mydict[node_1].append(node_2) # append in list

print(mydict)

输出:

{'0': ['0', '1', '2', '3'], '1': ['0', '1', '2', '3'], '2': ['0', '1', '2', '3'], '3': ['0', '1', '2', '3']}

注意:您不应将变量命名为dict,这是内置方法的名称。

【讨论】:

    【解决方案2】:

    像这样?:

    d = {}
    
    for i in range(0,4):
            node_1=str(i)
            for j in range(0,4):
                node_2=str(j)
                if node_1 not in d:
                    d[node_1] = []
                d[node_1].append(node_2)
    print(d)
    

    请不要使用dict作为变量名。

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 2019-03-29
      • 2019-09-30
      • 2023-03-12
      • 2017-05-13
      • 2022-01-03
      • 2021-12-03
      • 2020-11-02
      • 2017-07-22
      相关资源
      最近更新 更多