У меня есть следующие словари:удалить элементы из 2 словарей питона 3
a = {'f': 2, 'u': 210, 'the': 100, 'too': 300, 'my': 199, 'is': 2466, 'and': 3787}
b = {'f': 9, 'u': 17, 'o': 14, 'the': 23, 'yy': 7, 'and': 12}
Я хочу, чтобы удалить подобные ключи от обоих словарей.
У меня есть следующий код:
for item in a:
if item in b.keys():
del a[item]
Код аналогичен модификации словаря б.
Когда я бегу, я получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "None", line 4, in <module>
builtins.RuntimeError: dictionary changed size during iteration
Есть ли способ решить эту проблему без использования DeepCopy, dict.has_key, почтовый индекс или любые модули? Кроме того, словари могут иметь любую длину.
Можете ли вы (кратко) уточнить, почему использование 'b.keys()' во внутреннем цикле замедляет его? – BlackVegetable
Заголовок вопроса говорит «python 3», поэтому я думаю, вам понадобится «list (a)». И поскольку мы используем python 3, 'b.keys()' также должен быть слишком быстрым (по сравнению со списком, я имею в виду.) – DSM
@DSM Да, я уже обновлял ответ. –