首页 > 解决方案 > graph.nodes() 是否保持某种顺序?

问题描述

使用networkx2,该.nodes()方法是否保证某种一致的节点排序,或者我们可以期望在同一个图上的多个调用之间改变排序?

标签: pythonnetworkx

解决方案


高达 Python 3.6

节点保存在 a 中dictionary,并nodes()返回dictionary键列表。只要您不更改图形节点中的任何内容,顺序就会保持不变。添加/删除节点或边可能会影响顺序。

从 Python 3.6 开始:

在某些 Python 实现中,例如CPythondictionary维护插入顺序,这意味着您可以预期打印顺序,但不是全部

从 Python 3.7 开始:

Ordereddictionary现在是语言标准。

文档

def nodes(self): 
    """Return a copy of the graph nodes in a list.""" 
    return self.adj.keys()

networkx支持 Python 2.7、3.4、3.5 或 3.6,行为取决于您的版本。


推荐阅读