gpt4 book ai didi

python - 在Python中将有向图(列表数组)转换为无向图(列表数组)的快速方法?

转载 作者:行者123 更新时间:2023-11-28 22:05:35 25 4
gpt4 key购买 nike

我正在尝试将一组弧转换为一组边以进行一些简单的可视化工作。

我的弧线数据当前如下所示:

(
['A','B',2],
['B','A',3],
['A','C',4],
['B','C',2],
)

我需要将其转换为边缘,因此方向被组合起来,如下所示:

(
['A','B',5],
['A','C',4],
['B','C',2],
)

我认为应该有一种非常Pythonic的方法来做到这一点,但不确定最优雅的方法是什么。

最佳答案

这是一种使用字典的方法,其中键是按排序顺序的弧的末端:

import collections
d = collections.defaultdict(int)
for n1, n2, v in arcdata:
d[min(n1, n2), max(n1, n2)] += v
result = [[k[0], k[1], v] for k, v in d.iteritems()]

关于python - 在Python中将有向图(列表数组)转换为无向图(列表数组)的快速方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5058084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com