簡體   English   中英

NetworkX 中的最短路徑生成器

[英]Shortest path generator in NetworkX

我有幾百到幾千個節點的圖,帶有權重和它的名字G

我想計算這個圖的所有最短路徑。 為此,我寫了

pathlens = nx.algorithms.shortest_paths.generic.shortest_path_length(G, weight="weight")

但是由於字典的大小,它返回一個生成器對象,所以我不能簡單地執行pathlens[x][y]來獲得從xy的最短路徑長度。

我嘗試使用dict(pathlens)將其轉換為 dict ,但此操作需要很長時間(至少幾秒鍾,並且在我編寫此問題時仍在進行)。 有沒有更好的方法可以從這個生成器訪問最短路徑?

嘗試迭代生成器,如下所示:

import networkx as nx

G = nx.path_graph(5)
P = nx.shortest_path_length(G)
for key, value in P:
  print(key,'-->',value)

如果結果太多,將其轉換為字典會消耗太多內存(這樣做沒有意義)。 如果您需要特定路徑,請傳遞源節點或目標節點或兩者,因此該函數將不會返回生成器Networkx 文檔,請參閱“返回”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM