-
Anonymous
Зачем получать неожиданный ответ
Сообщение
Anonymous »
У меня есть таблица данных, как показано ниже:
Я использую код ниже
Код: Выделить всё
d={}
D={}
h = ['A','B','C']
type1=['A1','B1','C1']
type2=['A2','B2','C2']
for i,val in enumerate(h):
d['Type1'] = type1[i]
d['Type2'] = type2[i]
D[val]=d
print('loop',i,'\nd:',d,'\nD:',D,'\n\n====')
#print(D)
Я ожидаю получить следующий результат:
Код: Выделить всё
{'A':{'Type1':'A1','Type2':'A2'},'B':{'Type1':'B1','Type2':B2},'C':{'Type1':C1,'Type2':'C2'},}
Однако результат:
Код: Выделить всё
{'A': {'Type1': 'C1', 'Type2': 'C2'}, 'B': {'Type1': 'C1', 'Type2': 'C2'}, 'C': {'Type1': 'C1', 'Type2': 'C2'}}
Какая ошибка в моей логике?
Я не могу понять, что там не так.
Я добавил отпечаток в цикл.
Код: Выделить всё
loop 0
d: {'Type1': 'A1', 'Type2': 'A2'}
D: {'A': {'Type1': 'A1', 'Type2': 'A2'}}
====
loop 1
d: {'Type1': 'B1', 'Type2': 'B2'}
D: {'A': {'Type1': 'B1', 'Type2': 'B2'}, 'B': {'Type1': 'B1', 'Type2': 'B2'}}
====
loop 2
d: {'Type1': 'C1', 'Type2': 'C2'}
D: {'A': {'Type1': 'C1', 'Type2': 'C2'}, 'B': {'Type1': 'C1', 'Type2': 'C2'}, 'C': {'Type1': 'C1', 'Type2': 'C2'}}
====
из выходных данных d верен в каждом цикле
Но D меняется в каждом цикле!
Не знаю, почему так.
Подробнее здесь:
https://stackoverflow.com/questions/521 ... ected-dict
1737464981
Anonymous
У меня есть таблица данных, как показано ниже:
[code] A B C
type1 A1 B1 C1
type2 A2 B2 C2
[/code]
Я использую код ниже
[code]d={}
D={}
h = ['A','B','C']
type1=['A1','B1','C1']
type2=['A2','B2','C2']
for i,val in enumerate(h):
d['Type1'] = type1[i]
d['Type2'] = type2[i]
D[val]=d
print('loop',i,'\nd:',d,'\nD:',D,'\n\n====')
#print(D)
[/code]
Я ожидаю получить следующий результат:
[code]{'A':{'Type1':'A1','Type2':'A2'},'B':{'Type1':'B1','Type2':B2},'C':{'Type1':C1,'Type2':'C2'},}
[/code]
Однако результат:
[code]{'A': {'Type1': 'C1', 'Type2': 'C2'}, 'B': {'Type1': 'C1', 'Type2': 'C2'}, 'C': {'Type1': 'C1', 'Type2': 'C2'}}
[/code]
Какая ошибка в моей логике?
Я не могу понять, что там не так.
Я добавил отпечаток в цикл.
[code]loop 0
d: {'Type1': 'A1', 'Type2': 'A2'}
D: {'A': {'Type1': 'A1', 'Type2': 'A2'}}
====
loop 1
d: {'Type1': 'B1', 'Type2': 'B2'}
D: {'A': {'Type1': 'B1', 'Type2': 'B2'}, 'B': {'Type1': 'B1', 'Type2': 'B2'}}
====
loop 2
d: {'Type1': 'C1', 'Type2': 'C2'}
D: {'A': {'Type1': 'C1', 'Type2': 'C2'}, 'B': {'Type1': 'C1', 'Type2': 'C2'}, 'C': {'Type1': 'C1', 'Type2': 'C2'}}
====
[/code]
из выходных данных d верен в каждом цикле
Но D меняется в каждом цикле!
Не знаю, почему так.
Подробнее здесь: [url]https://stackoverflow.com/questions/52179509/why-get-unexpected-dict[/url]