我浏览了与该主题有关的答案的数据库,找不到答案,本质上是在浏览字典,遇到“字典更改大小”,运行时错误,但我弹出了一个关键和值,并在迭代恢复之前插入另一个。
for patterns in dict_copy.keys():
new_tuple = ()
for items in range(len(patterns)):
if patters[items] not in exclusion:
new_tuple += (patterns[items],)
dict_copy[new_tuple] = dict_copy.get(patterns)
dict_copy.pop(patterns)
我正在使用的字典的格式为:{(“ A”,“ B”,“ C”,“ D”):4,((“ B”,“ A”,“ C”,“ D”) “ 2 ...}
我对它认为我在改变字典大小这一事实感到非常困惑
最佳答案
该错误会引起误解。它试图告诉您的是,在遍历dict时,您不应该进行任何结构性更改(插入/删除)。
解决此问题的一种简单方法是将结果放入单独的字典中:
new_dict = {}
for patterns in dict_copy.keys():
new_tuple = ()
for items in range(len(patterns)):
if patters[items] not in exclusion:
new_tuple += (patterns[items],)
new_dict[new_tuple] = dict_copy.get(patterns)
dict_copy = new_dict