connections = [('Würzburg', 'Schweinfurt', 50), ('Würzburg', 'Nürnberg', 100), ('Schweinfurt', 'Bamberg', 60), ('Bamberg', 'Coburg', 50), ('Bamberg', 'Nürnberg', 60), ('Bamberg', 'Bayreuth', 60), ('Nürnberg', 'Bayreuth', 90), ('Bayreuth', 'Hof', 50), ('Coburg', 'Hof', 80), ] def allNodes(connections): nodes = set() for a in connections: nodes.add(a[0]) nodes.add(a[1]) return nodes def initMap(connections): m = allNodes(connections) knoten = {} for a in m: knoten[a] = {} return knoten def addConnection(data, connection): a, b, c = connection data[a].setdefault('connection', []).append([b, c]) data[b].setdefault('connection', []).append([a, c]) return data map = initMap(connections) print(initMap(connections)) print(connections[0][0]) for con in connections: addConnection(map, con) print(map)