С python3, итерация на dic.keys () приведет к увеличению ошибки размера словаря. Вы можете использовать этот альтернативный способ:
Протестировано с помощью python3, оно отлично работает и «Измененный размер словаря во время итерации» не поднимается:
my_dic = { 1:10, 2:20, 3:30 }
# Is important here to cast because ".keys()" method returns a dict_keys object.
key_list = list( my_dic.keys() )
# Iterate on the list:
for k in key_list:
print(key_list)
print(my_dic)
del( my_dic[k] )
print( my_dic )
# {}
Я использую его, когда, из словаря с использованием лота памяти я хочу построить другой словарь (содержащий модификацию первого) без выполнения «копирования» и перегрузки ОЗУ.