如何遍历代码中的random_path?能否通过列表展示全部随机路径?
问题(翻译自英文)
我希望打印下述代码中的random_path,请问能否通过列表展示所有随机路径?
代码示例:
random_path = nx.generate_random_paths(twitch_G, 100, path_length = 5)
解决方案
当然可以。nx.generate_random_paths() 返回的是生成器对象,它不会一次性生成所有路径,而是按需产出,直接打印只会显示生成器的内存地址。要获取完整的路径列表,只需将生成器转换为列表即可。
实现代码
import networkx as nx # 假设twitch_G是已构建好的NetworkX图 # 先获取生成器对象(避免直接覆盖导致无法重复遍历) path_generator = nx.generate_random_paths(twitch_G, 100, path_length=5) # 转换为列表存储所有路径 random_path_list = list(path_generator) # 打印完整路径列表 print(random_path_list) # 若需逐条清晰展示,可使用循环 for i, path in enumerate(random_path_list, start=1): print(f"第{i}条路径: {path}")
关键点说明
- 生成器特性:生成器不会预存所有结果,转换为列表时才会一次性生成全部100条路径并存储。
- 避免直接覆盖:建议先将生成器赋值给单独变量,再转列表,防止后续需要重新生成路径时重复调用函数(每次调用
nx.generate_random_paths()都会生成新的随机路径)。
内容的提问来源于stack exchange,提问作者Balboa
相关产品推荐
相关产品推荐

