如果我得到一个字典来表示图,其中顶点是键,值是列表,其条目包含相邻顶点和两个顶点之间的权重,我该如何返回按增量排序且没有重复的边缘列表?例如,我可能会得到以下字典:{"A": [["B",10], ["D",5]], "B": [["A",10], ["C",5]], "C": [["B",5],["D",15]], "D": [["C",15], ["A",5]]}。此外,我只被允许导入copy库,因此我可以复制一个列表并使用deepcopy()创建具有相同元素的新对象。现在,我正在尝试将字典转换为列表,因为我认为在列表内部对元素进行排序并删除重复的边缘可能更容易。所以,目前我有以下内容(graph是字典,在这种情况下提供了上述内容)...
def edge_get(graph):
input_list = []
sorted_list = []
for key, value in graph.items():
temp = [key,value]
input_list.append(temp)
print(input_list)
这将会打印出...
[['A', [['B', 10], ['D', 5]]], ['B', [['A', 10], ['C', 5]]], ['C', [['B', 5], ['D', 15]]], ['D', [['C', 15], ['A', 5]]]]
我想要的输出结果是:
[['A', 'B', 10], ['A', 'D', 5], ['B', 'A', 10], ['B', 'C', 5],...
我认为如果我能得到像这样的结果,就可以比较列表中每个列表的第三个元素,如果它们相同,则检查其他元素是否匹配(相同的边)。基于此,我可以将其添加到最终列表或忽略它并继续执行。
对于这个例子,最终目标是:
[['A', 'D'], ['B', 'C'], ['A', 'B'], ['C', 'D']]