создание словаря с вложенным циклом

#python #loops #for-loop #nested

#python #циклы #for-цикл #вложенный

Вопрос:

Я попытался создать словарь с вложенными циклами, но не удалось. Я не знаю, что не так:

 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']}
  

Комментарии:

1. Пожалуйста, отформатируйте свой код как код. Сейчас он не читается

Ответ №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 для имени переменной.