得到标题中提到的错误。下面提到的函数由通过POST api调用的另一个函数调用。
打印语句下方的行上有错误。不知道错误的含义以及为什么会出现。用于一周前运行的相同代码。
def remove_individual_stops(ordered_parkstop_dict, relevant_data):
new_ordered_parkstop_dict = ordered_parkstop_dict
for key, value in ordered_parkstop_dict.items():
if len(value) == 0:
for k,v in ordered_parkstop_dict.items():
if key in v:
new_ordered_parkstop_dict.pop(key)
print (type(ordered_parkstop_dict), ordered_parkstop_dict)
for k,v in ordered_parkstop_dict.items():
klist = []
keylist = []
if value and v:
if len(v)==1 and len(value)==1:
klist.append(k), keylist.append(key)
if (keylist == v) and (klist == value and len(value) == 1):
new_ordered_parkstop_dict.pop(key)
return new_ordered_parkstop_dict
您分配new_ordered_parkstop_dict
了ordered_parkstop_dict
dict 的引用,因此,当您遍历ordered_parkstop_dict.items()
并new_ordered_parkstop_dict
通过弹出它进行变异时,您ordered_parkstop_dict
也会发生变异,这是无法完成的,因为您的循环正在遍历ordered_parkstop_dict
。
你应该副本分配ordered_parkstop_dict
给new_ordered_parkstop_dict
代替。更改:
new_ordered_parkstop_dict = ordered_parkstop_dict
至:
new_ordered_parkstop_dict = ordered_parkstop_dict.copy()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句