У меня есть словарь по умолчанию, и я запускаю его через несколько циклов, чтобы найти определенные строки в словаре.Циклы на самом деле ничего не добавляют к словарю, но, как выясняется, во время цикла новые элементы продолжают добавляться в словарь, и окончательный словарь заканчивается больше, чем исходный перед циклом.Я пытался определить эту ошибку навсегда, но сейчас уже поздно, и я не знаю, что вызвало это!
from collections import defaultdict
dummydict = defaultdict(list)
dummydict['Alex'].append('Naomi and I love hotcakes')
dummydict['Benjamin'].append('Hayley and I hate hotcakes')
part = ['Alex', 'Benjamin', 'Hayley', 'Naomi']
emp = []
for var in dummydict:
if 'I' in dummydict[var]:
emp.append(var)
for car in part:
for key in range(len(dummydict)):
print('new len', len(dummydict))
print(key, dummydict)
if car in dummydict[key]:
emp.append(car)
print(emp)
print('why are there new values in the dictionary?!', len(dummydict), dummydict)
Я ожидаю, что словарь останется неизменным.