Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Thuught: Wenn Du nicht mehr durchsteigst, dann mach's doch einfach einfacher. Hör zum Beispiel auf von `dict` zu erben.
Und vielleicht solltest Du ein Tupel mit `x` und `y` als Schlüssel nehmen und nicht diese Zeichenkette, die Du da bastelst. Mal angenommen Du hast die Koordinaten 12, 3, die werden unter '123' gespeichert. Und die Koordinaten 1, 23? Huch - *auch* unter '123'. Nehme an, dass war nicht so gewollt.
Alternativ könnte man beim speichern und auslesen auch immer dafür sorgen, dass x < y gilt, bzw. falls das nicht gilt, die Koordinaten vertauschen.
"Innere Klassen" sind in Python äusserst ungewöhnlich.
Oh und `lexicon` gilt für alle Exemplare von `kanten` -- ist das gewollt?
- doppelte Einträge sind erstmal nicht möglich und wenn dann durchaus erlaubt.
- Das ganze Konstrukt kommt aus einer Kantenklasse und einer Liste mir erzeugten Kanten. Irgenwann hab ich gemerkt, dass ich keine Liste haben will, sondern mit (<knoten A>, <knoten B>) genau die richtige Kanteninstanz erhalten will. Somit war die Idee eines eigenen Dictionairies geboren, weil man ja keine menge als keys haben darf
Letzendlich hab ich die dictklasse sehr,sehr verstümmelt bis zu dem Punkt, an dem ich ein echtes Wörterbuch aka "lexikon" als Klassenvariabel benutzt habe:oops: . __setitem__ braucht 2 Argumente, __repr__ darf nur str zurückgeben und all so Tücken.
Frozensets hab ich doch glatt vergessen. Danke für den Hinweis. Damit lässt sich was machen.Eine Frage noch:
Wie lässt es sich am besten auf so ein set zugreifen? nur mit kante[frozenset([x,y])]?