all_distance = dict(nx.all_pairs_dijkstra_path_length(G)) for source in all_distance : for target in all_distance[source]: print(f"{all_distance[source][target]}" )怎样将打印出的距离先求倒数再求和
时间: 2024-02-11 22:05:41 浏览: 148
你可以在第二个循环中,将每个距离取倒数,并将其加入一个变量中,最后得到所有距离的倒数之和。具体实现可以像下面这样修改代码:
```
all_distance = dict(nx.all_pairs_dijkstra_path_length(G))
total_distance_inverse = 0
for source in all_distance:
for target in all_distance[source]:
distance_inverse = 1 / all_distance[source][target]
total_distance_inverse += distance_inverse
print(total_distance_inverse)
```
在这个代码中,我们新增了一个变量 `total_distance_inverse`,用来记录所有距离的倒数之和。在内层循环中,我们计算当前距离的倒数,并将其加入 `total_distance_inverse` 中。最后,我们打印出 `total_distance_inverse` 即可。
相关问题
all_pairs = dict(nx.all_pairs_dijkstra_path_length(G))如何输出?
如果要输出`all_pairs`这个字典,可以使用Python的字典遍历方法,将字典中的键和值打印出来。具体代码如下:
```
all_pairs = dict(nx.all_pairs_dijkstra_path_length(G))
for start_node, dist_dict in all_pairs.items():
for end_node, dist in dist_dict.items():
print(f"起始节点:{start_node},终止节点:{end_node},最短路径长度:{dist}")
```
这样就可以将`all_pairs`字典中的所有节点对和最短路径长度打印出来。如果要将这些信息输出到文件中,可以使用Python的文件操作函数,将信息写入指定文件中。
all_pairs = dict(nx.all_pairs_dijkstra_path_length(G))如何写入新的csv文件
要将`all_pairs`这个字典写入到CSV文件中,可以使用Python的CSV模块。具体代码如下:
```
import csv
all_pairs = dict(nx.all_pairs_dijkstra_path_length(G))
with open('all_pairs.csv', 'w', newline='') as csvfile:
fieldnames = ['起始节点', '终止节点', '最短路径长度']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for start_node, dist_dict in all_pairs.items():
for end_node, dist in dist_dict.items():
writer.writerow({'起始节点': start_node, '终止节点': end_node, '最短路径长度': dist})
```
这段代码会将`all_pairs`字典中的所有节点对和最短路径长度写入到名为`all_pairs.csv`的CSV文件中,文件的第一行是字段名,后面的每一行是一个节点对和最短路径长度。你可以根据需要修改文件名和字段名。
阅读全文