graph.nodes()是否保持某些顺序?

时间:2019-03-25 12:44:44

标签: python networkx

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

1 个答案:

答案 0 :(得分:1)

高达Python 3.6

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

从Python 3.6开始:

在某些Python实现中,例如CPythondictionary会保持插入顺序,这意味着您可以期望打印顺序,但是并不是所有的

从Python 3.7:

订购的dictionary现在是语言标准。

docs

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,其行为取决于您的版本。