У меня есть файл, содержащий:
0 1 95.21
0 2 43.8
1 3 10.4
2 5 67.1
и я пытаюсь создать из него список смежности. Где первые две линии представляют вершины, соединенные друг с другом, а 3-й столбец представляет длину ребра. Я хочу, чтобы python выдавал вывод как таковой:
[[1, 95.21],[2, 43.8]] #starting from 0, 0 connects to 1 of length 95.21, and 0 connects to 2 of length 43.8
[[0, 95.21],[3, 10.4]] #for 1, 1 also connects to 0 of length 95.21, and 1 connects to 3 of length 10.4
[[0, 43.8],[5, 67.1]] #for 2, 2 also connects to 0 of length 43.8, and 2 connects to 5 of length 67.1
Мне удалось написать код, который создает список смежности:
filename2 = open("list.txt", "r", encoding = "utf-8")
efile = filename2
adjList = [0] * 10
for i in range(10):
adjList[i] = []
for line in efile:
edgeEndpoints = line.split()
adjList[int(edgeEndpoints[0])].append(int(edgeEndpoints[1]))
adjList[int(edgeEndpoints[1])].append(int(edgeEndpoints[0]))
print(adjList)
дает мне
[[1,2],[0,3],[0,5]]
но я не мог придумать, как включить длину ребра. Вместо [1,2] я хотел
[[[1, 95.21],[2, 43.8]],[[0, 95.21],[3, 10.4]],[[0, 43.8],[5, 67.1]]
Буду признателен за помощь в этом.