Python networkx图形复制进入递归循环并失败

2024-10-01 13:38:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里张贴这既是一个答案(遵循)和一个问题。你知道吗

我复制一个图形,然后修剪某些边,增加我的路径搜索,然后修剪和重复(在递归,深度优先的路径搜索)。你知道吗

问题:

我很容易理解浅拷贝和深拷贝的区别,但是有人能告诉我在复制图形时这两种拷贝的后果吗?你知道吗

我的问题是因为在使用networkxcopy函数时:

G2 = G.copy()

我相信它创建了一个deepcopy,我进入了一个递归复制循环,最终失败了(下面的屏幕截图)。我发现使用浅拷贝:

G2 = nx.MultiDiGraph(G)

没有出现这样的问题。然而,我想知道我是否可能需要使用一个超过另一个或如果一个是普遍可取的?你知道吗

深度复制问题:

deepcopy进入了一个recurvie复制循环并失败了,为什么? enter image description here


Tags: 函数答案路径图形屏幕copynx拷贝
1条回答
网友
1楼 · 发布于 2024-10-01 13:38:36

我最终发现,而且我在其他地方也没有看到任何类似的内容,因此我将其发布在这里供其他人将来参考,问题的根源是我的节点名是漂亮的soup navigablestring,而不是字符串。你知道吗

我的节点名是由一个函数解析一些html生成的,该函数使用以下行创建:

(soup.find(class_='from').abbr.string, soup.find(class_='tp').abbr.string)

简单地将navigablestring转换为字符串就解决了这个问题:

(str(soup.find(class_='from').abbr.string), str(soup.find(class_='tp').abbr.string))

相关问题 更多 >