У меня есть список таких кортежей, которые не упорядочены, как показано здесь, из-за того, что исходный текстовый файл не упорядочен в первую очередь.
g = [('a', 'w', 14), ('a', 'x', 7), ('a', 'y', 9),
('b', 'w', 9), ('b', 'z', 6),
('w', 'a', 14), ('w', 'b', 9), ('w', 'y', 2),
('x', 'a', 7), ('x', 'y', 10), ('x', 'x', 15),
('y', 'a', 9), ('y', 'w', 2), ('y', 'x', 10), ('y', 'z', 11),
('z', 'b', 6), ('z', 'x', 15), ('z', 'y', 11)]
и хотел бы преобразовать егона
g = {
'a': {'w': 14, 'x': 7, 'y': 9},
'b': {'w': 9, 'z': 6},
'w': {'a': 14, 'b': 9, 'y': 2},
'x': {'a': 7, 'y': 10, 'z': 15},
'y': {'a': 9, 'w': 2, 'x': 10, 'z': 11},
'z': {'b': 6, 'x': 15, 'y': 11},
}
Я начинаю с текстового файла, в котором каждый кортеж в строке представлен в виде строк - не упорядочено:
a w 14
b w 9
x a 7
...
Чтобы попасть в список кортежей: естьв настоящее время следующий код:
with open(filename, 'r') as reader:
num_nodes = int(reader.readline())
edges = []
for line in islice(reader, num_nodes + 1, None):
values = line.split()
values[2] = int(values[2])
edges.append(tuple(values))
Текстовый файл имеет следующий формат:
<number of nodes>
<ID of node>
...
<ID of node>
<number of edges>
<from node ID> <to node ID> <distance>
...
<from node ID> <to node ID> <distance>
Любая помощь / совет высоко ценится.