我浏览了与该主题有关的答案的数据库,找不到答案,本质上是在浏览字典,遇到“字典更改大小”,运行时错误,但我弹出了一个关键和值,并在迭代恢复之前插入另一个。

       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

10-04 12:24