Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何在Python3中找到两个网络之间的唯一节点?_Python_Python 3.x_Python 2.7_Unique_Networkx - Fatal编程技术网

Python:如何在Python3中找到两个网络之间的唯一节点?

Python:如何在Python3中找到两个网络之间的唯一节点?,python,python-3.x,python-2.7,unique,networkx,Python,Python 3.x,Python 2.7,Unique,Networkx,我有两个网络G和G1,它们是通过networkx生成的 为了找到包含两个网络(即交叉点)之间的唯一节点的列表,我在python2.7中运行了以下命令,该命令非常有效 tmp2 = list(set(G.nodes) & set(G1.nodes)) 使用Python 3的机器中的相同命令返回以下错误: TyperError: 'method' object is not iterable 在Python3.x中是否有避免此错误的方法?此错误表明节点是Python3中的一个方法,因此

我有两个网络
G
G1
,它们是通过
networkx
生成的

为了找到包含两个网络(即交叉点)之间的唯一节点的列表,我在
python2.7
中运行了以下命令,该命令非常有效

tmp2 =  list(set(G.nodes) & set(G1.nodes))
使用Python 3的机器中的相同命令返回以下错误:

TyperError: 'method' object is not iterable

Python3.x
中是否有避免此错误的方法?

此错误表明
节点是Python3中的一个方法,因此代码应更改为
列表(set(G.nodes())&set(G1.nodes())
以便实际调用它。

错误表明
节点是Python 3中的一个方法,因此代码应该更改为
list(set(G.nodes())&set(G1.nodes())
以便实际调用它。

在networkx 1.x版中,
G.nodes
是一个方法,它返回
G
的节点
G.nodes()
G
的节点列表。因此,对
set(G.nodes)
的调用要求Python对方法进行设置。那是不可能的。它可以设置
G
的节点。因此
set(G.nodes())
起作用

在2.x版中,
G.nodes
G.nodes()
都是
NodeView
对象。这些操作非常类似于列表(尽管存在差异)


因此,您的命令将在最新版本的networkx中运行,但不会在旧版本中运行。即使您切换到使用
2.x
,我建议仍将其称为
G.nodes()
,以防代码在早期版本中运行。

在networkx 1.x版中,
G.nodes
是一种方法,它返回
G
的节点
G.nodes()
G
的节点列表。因此,对
set(G.nodes)
的调用要求Python对方法进行设置。那是不可能的。它可以设置
G
的节点。因此
set(G.nodes())
起作用

在2.x版中,
G.nodes
G.nodes()
都是
NodeView
对象。这些操作非常类似于列表(尽管存在差异)


因此,您的命令将在最新版本的networkx中运行,但不会在旧版本中运行。即使您切换到使用
2.x
,我建议仍将其称为
G.nodes()
,以防代码在早期版本中运行。

我创建了一个简单的网络,无法重现您的问题,这意味着您没有提供解决方案。您的代码在Python 3 networkx 2.1版中运行良好。你能发布你的networkx版本吗?我创建了一个简单的网络,无法复制你的问题,这意味着你没有提供一个新的版本。您的代码在Python 3 networkx 2.1版中运行良好。你能发布你的networkx版本吗?