Python 如何检查图节点的邻居中是否存在值?

Python 如何检查图节点的邻居中是否存在值?,python,networkx,Python,Networkx,我可以检查图中所有节点的属性中是否存在值: G=nx.星形图(4) 设置节点属性(G,{0:{x:}“a”},1:{“x”:“b”},3:{“x”:“a”},4:{“x”:“b”}) 打印(G.nodes(data=“x”)) #[(0,'a'),(1,'b'),(2,无),(3,'a'),(4,'b')] 打印dict(G.nodes(data=“x”).values()中的(“a”) #真的 在dict(G.nodes(data=“x”)).values()中打印(“c”) #假的 现在,

我可以检查图中所有节点的属性中是否存在值:

G=nx.星形图(4)
设置节点属性(G,{0:{x:}“a”},1:{“x”:“b”},3:{“x”:“a”},4:{“x”:“b”})
打印(G.nodes(data=“x”))
#[(0,'a'),(1,'b'),(2,无),(3,'a'),(4,'b')]
打印dict(G.nodes(data=“x”).values()中的(“a”)
#真的
在dict(G.nodes(data=“x”)).values()中打印(“c”)
#假的
现在,我想检查
“x”
属性的值是否存在于节点的任何邻居中,例如节点
0
或节点
1

我不知道如何使用访问节点邻居的常用方法来实现这一点。我想象的是类似于
G[n].nodes(data=“x”)
,但是
G[n]
返回的AtlasView无法(据我所知)访问邻居数据

G.neights(n)
返回迭代器。我可以使用这个迭代器,逐步检查每个节点的数据。我假设(可能是错误的)这比“一次”检查所有节点的数据效率要低,正如上面对整个图所示


答案不一定要遵循我心目中的方向,特别是如果建议的答案更快或更像蟒蛇的话。

这里给出了一个类似问题的答案:

我想说,这个问题的答案可能是这样的:

>>[y代表y在[x代表x在G[0]]中如果G.node中的“x”[y]]
[1, 3, 4]
>>>[y代表y在[x代表x在G[0]]中如果G.node[y]中的'x'和G.node[y]['x']=='a']
[3]
>>>[y代表y在[x代表x在G[0]]中如果G.node[y]中的'x'和G.node[y]['x']=='c']
[]
>>>[y代表y在[x代表x在G[0]]中如果G.node[y]中的'x'和G.node[y]['x']=='b']
[1, 4]
我不知道它有多“pythonic”,但似乎没有一种方便的方式来访问有一些标准的邻居