def keysorting(self):
eing = dict() #my dic1
tarnod = dict() #mydic2
if self.has_cycle():
raise Exception('There is a cycle!')
else:
for node in self.nodes():
eing[node] = self.indeg(node)
for node in self.nodes():
tarnod[node] = self.target_nodes(node)
for key, value in eing.items():
if value == 0:
lst.append(key)
del eing[key]
self.update(key, tarnod, eing)
def update(self, key, tarnod, eing):
if key in tarnod.keys():
for val in tarnod[key]:
eing[val] -= 1
del eing[key]
return eing
我最大的问题是我想循环一个我正在更改的字典,所以我的代码大多数时候都会生成一条错误消息,告诉我字典的大小在迭代过程中发生了更改。希望你们能帮我
好了,各位,我的问题更具体了,因为你们要求很严格: 我的代码必须如何构造,以便在我的dic1上循环,然后更新它,然后在更新的dic1上循环,并在更新的dic上执行相同的操作
别忘了:没有不好的问题,只有不好的答案;-)
一般来说,解决这个问题的方法是循环一个你正在改变的东西的副本,例如:
list(eing.items())
将生成一个列表,该列表有自己的生命周期,并且不受相关问题 更多 >
编程相关推荐