擅长:python、mysql、java
<p>我建议使用另一种方法,而不是定义自己的类型并始终使用<code>isinstance</code>进行检查(这非常慢)。在</p>
<p>{a1/你可以看看这个边缘}节点。在</p>
<p>然而,我发现了另一个技巧,它可能对你的具体情况很有用。在</p>
<p>如果定义了表示节点类型的属性,则可以使用
内置的<code>get_node_attributes</code>函数。诀窍是它只返回真正定义属性的节点:</p>
<pre><code>import networkx as nx
G = nx.complete_graph(10)
G.node[0]['ColorNode'] = True # right-hand side value is irrelevant for the lookup
G.node[1]['ColorNode'] = True
G.node[2]['ShapeNode'] = True
G.node[3]['ShapeNode'] = True
shape_nodes = nx.get_node_attributes(G, 'ShapeNode').keys()
color_nodes = nx.get_node_attributes(G, 'ColorNode').keys()
print('Shape node ids: {}'.format(shape_nodes))
print('Color node ids: {}'.format(color_nodes))
</code></pre>
<p>输出:</p>
^{pr2}$
<p>当然,如果您的图是大的或静态的,您应该保留id列表以便快速查询!在</p>