Относительно плохо знакомый с Python, я заметил странное поведение, когда пытался использовать список типа «журнал» для регистрации обновления словаря.
Исходный код действительно сложный, поэтому я разбил его, чтобы воспроизвести битэто не действует так, как я ожидал
У меня есть список, который будет преобразован в словарь
list2conv = ['Key1', 'Key2']
преобразовать его в словарь
d_fromList = dict.fromkeys(list2conv)
for i in d_fromList:
d_fromList[i] = [0, 0]
Созданиесписок вывода, который будет являться своего рода журналом операций, выполняемых в словаре, и с добавлением некоторых значений
outList = []
for i in range(0, 3):
d_fromList['Key1'][0] = d_fromList['Key1'][0] + 10
d_fromList['Key2'][1] = d_fromList['Key2'][1] + 20
outList.append(d_fromList['Key1'])
outList.append(d_fromList['Key2'])
Фактический результат
[[30, 0], [0, 60], [30, 0], [0, 60], [30, 0], [0, 60]]
Что бы я ожидал
[[10, 0], [0, 20], [20, 0], [0, 40], [30, 0], [0, 60]]
Что я делаю не так?