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

标签 python python-3.x recursion copy networkx

我将其发布在这里既作为答案(遵循)又作为问题。

我正在复制一个图形,然后修剪某些边缘,增加路径搜索,然后修剪并重复(在递归、深度优先路径搜索中)。

问题:

我稍微理解浅复制和深复制之间的区别,但是有人能告诉我这两种复制图时的后果吗?

出现我的问题是因为使用 networkx copy 功能时:

G2 = G.copy()

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

G2 = nx.MultiDiGraph(G)

没有出现这样的问题。但是我想知道我是否可能需要使用其中一种而不是另一种,或者通常情况下一种更可取?

深拷贝问题:

深度复制进入递归复制循环并失败,为什么? enter image description here

最佳答案

我最终发现,并且我没有在其他地方看到任何类似的内容,因此我将其发布在这里以供其他人将来引用,问题的根源是我的节点名称是 beautifulSoup NavigableStrings 和不是字符串。

我的节点名称是由一个函数生成的,该函数解析一些 html,并按照以下方式创建:

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

只需将 NavigableStrings 转换为字符串即可解决问题:

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

关于Python networkx图复制进入递归循环并失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432808/

相关文章:

找到 Python TypeError : coercing to Unicode: need string or buffer, 元组

javascript - 在 selenium python 中执行脚本

python - 为什么我在 python 中看到时区异常

c - "Program received signal SIGSEGV , Segmentation fault” 尝试使用递归获取所有3字符组合的关键字时

c - 字符串递归函数的进展

python - 如何将数组写入文件,然后调用该文件并将更多内容添加到数组中?

python - 线程问题 使用线程时 Kivy 图像纹理不更新

python-3.x - 如何根据特定条件将普通数据框转换为多索引

python-3.x - 如何使python源代码的编译可重现

swift - 快速剖析排列算法