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