【发布时间】:2020-03-05 08:41:41
【问题描述】:
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 执行相同的操作
别忘了:没有不好的问题,只有不好的答案;-)
【问题讨论】:
-
我不明白这个问题。第 2 步不应在字典的循环内完成。一旦找到值 0,就应该跳出循环。
-
发布您尝试过的代码,我们会帮助您修复它。
-
"Can Someone Help Me?" is not a valid SO question。这通常表明您需要的是与当地导师相处或完成教程,而不是 Stack Overflow。最重要的是,每个教程都将教您一系列相关技术,而不仅仅是解决眼前的问题。如果您的代码失败,请参阅minimal, reproducible example 并编辑您的帖子;我们将从那里开始工作。
-
问题是我不知道如何正确实现这段代码。正如我在帖子中解释的那样,我制定的算法来自我,这是一项更大任务的一小部分,这只是一个单一的方法。我认为,如果我从上下文/类中取出我的代码并将其作为一般编码问题发布,对每个人来说都会更容易。
-
另外,我说明了我最大的代码问题是什么。这并不是说我不知道如何实现它,我在实现的特定部分失败(更新后循环通过我的 dic)。另请阅读我的标题。
标签: python dictionary recursion iteration