python - 来自networkx的g.nodes()不能与random.choice()一起使用

标签 python networkx

我正在尝试在随机节点之间生成随机边,但代码行 ab=choice(G.nodes()) 正在生成错误。

import networkx as nx
import matplotlib.pyplot as plt
from random import choice
G=nx.Graph()
city_set=['a','b','c','d','e','f','g','h']
for each in city_set:
    G.add_node(each)
ab=choice(G.nodes())
print(ab)

错误

C:\Users\DELL\Anaconda2\envs\untitled\python.exe C:/Users/DELL/Documents/PythonPrograms/Beginning/ntwxproject.py Traceback (most recent call last): File "C:/Users/DELL/Documents/PythonPrograms/Beginning/ntwxproject.py", line 10, in ab=choice(G.nodes()) File "C:\Users\DELL\Anaconda2\envs\untitled\lib\random.py", line 259, in choice return seq[i] File "C:\Users\DELL\Anaconda2\envs\untitled\lib\site-packages\networkx\classes\reportviews.py", line 178, in getitem return self._nodes[n] KeyError: 1

Process finished with exit code 1

我是Python新手,请帮助我。

最佳答案

您可以通过传递 list(G.nodes()) 而不仅仅是 G.nodes() 将 G.nodes() 转换为与 random.choice() 兼容的列表格式。

import networkx as nx
import matplotlib.pyplot as plt 
from random import choice      
G=nx.Graph()      
city_set=['a','b','c','d','e','f','g','h'] 
for each in city_set:     
    G.add_node(each)     
ab= choice(list(G.nodes())) 
print(ab)

关于python - 来自networkx的g.nodes()不能与random.choice()一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598324/

相关文章:

Python MixIn 标准

Python正则表达式匹配整个文件名包括文件扩展名

python - 您如何模拟 PyMySQL 的返回值以在 Python 中进行测试?

python - 根据程度对图节点进行排序

python - Networkx 读取军械调查 - ITN 综合传输网络?/读取 GML 文件

如果脚本启动后连接电缆,Python 无法获取 IP

python - 使用 add_edge_list() 方法创建图形的最佳方法是什么?

python - 删除几乎平行的 NetworkX 最短路径

python-3.x - 根据节点之间的欧几里得距离分配边权重

Python try/except 代码显示 `local variable referenced before assignment` 错误