我在Python中使用networkx作为图形方法和各种实用程序的功能接口。我想在图表中创建一个包含节点所有邻居的列表。
网页声明all_neighbors(图形,节点)返回迭代器。那是什么意思?如何在列表中保存邻居?
答案 0 :(得分:5)
迭代器是Python中新的时髦爵士乐,(并不是真的很新)它们基本上是一个可以直接迭代的对象,例如。
for i in all_neighbors(graph, node):
print i
因此,当某些东西说它返回一个迭代器时,它意味着可以直接迭代的东西。但不是清单。
要获取列表中迭代器的所有值,可以执行list(all_neighbors(graph, node))
但直接使用它远比简单得多。
Here是一些解释迭代器类型的文档。
答案 1 :(得分:1)
迭代器是一个逐个提供值的对象,并且只执行一次。您可以遍历迭代器,或者使用next()
函数请求下一个值,但是您无法索引到迭代器(例如,请求序列中特定位置的元素)。
只需在迭代器上调用list()
,即可将所有这些值收集到列表中:
list(all_neighbors(graph, node))