得到标题中提到的错误。下面提到的函数由通过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
Run Code Online (Sandbox Code Playgroud)
您分配new_ordered_parkstop_dict了ordered_parkstop_dictdict 的引用,因此,当您遍历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
Run Code Online (Sandbox Code Playgroud)
至:
new_ordered_parkstop_dict = ordered_parkstop_dict.copy()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4018 次 |
| 最近记录: |