Durchlauf durch Liste und Vergleich der Einträge

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.
Michi_J
User
Beiträge: 110
Registriert: Samstag 7. August 2010, 08:35

und gleich noch eine Frage hierzu: wenn ich eine Liste hab, die folgendermaßen aufgebaut ist:

Liste = [[1, [X1, Y1, Z1]], [2, [X2, Y2, Z2], [3, [X1, Y1, Z1], [4, [X3, Y3, Z3]]

das heißt, der Eintrag mit der ID = 1 und mit ID = 3 haben dieselben Koordinaten X1, Y1, Z1. Nun möchte ich die ID=3 durch ID=1 ersetzen, da sie ja beide die gleichen Koordinaten haben, sodass meine Liste also folgendermaßen aussieht:

Liste = [[1, [X1, Y1, Z1]], [2, [X2, Y2, Z2], [1, [X1, Y1, Z1], [4, [X3, Y3, Z3]]

vielleicht hat hierzu auch wer eine Idee. Danke auf alle Fälle an alle und für alles! Ohne euch wärs etwas schwer!
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Und wann hörst du auf, mit diesen verschachtelten Listen zu arbeiten? Die ganze letzte Seite ging doch darum, dass du dir endlich vernünftige Datentypen für deine Datenstruktur ausdenkst. Du wirst so _nicht_ glücklich werden :K

Das hier jetzt noch als Denkanstoss ...

Code: Alles auswählen

from shapely.geometry import Point

class Node(object):
    
    def __init__(self, id, geom):
        self.id = id
        self.geom = geom
        
p1 = Node(1, Point(1,1,1))
p2 = Node(2, Point(2,2,2))
p3 = Node(3, Point(1,1,1))
p4 = Node(4, Point(4,4,4))

for pa in (p1,p2,p3,p4):
    for pb in (p1,p2,p3,p4):
        print pa.id, pb.id, pa.geom.equals(pb.geom)

Code: Alles auswählen

1 1 True
1 2 False
1 3 True
1 4 False
2 1 False
2 2 True
2 3 False
2 4 False
3 1 True
3 2 False
3 3 True
3 4 False
4 1 False
4 2 False
4 3 False
4 4 True
Das darf man so nicht 1:1 übernehmen, sondern soll nur Ideen wecken, wie du an die Sache herangehen könntest
Michi_J
User
Beiträge: 110
Registriert: Samstag 7. August 2010, 08:35

@frabron: Danke für deinen Denkanstoß. Das "Abwenden" von verschachtelten Listen hin zu Objektorientierung ist für mich nicht so ganz einfach, da sehr neu. Ihr seit aber alle sehr bemüht um mich, muss ich feststellen und deshalb denke ich, dass ichs auch hinbekommen könnte.

Für meine "verschachtelte" Version gibt es keine Lösung? Oder funktioniert das nur mit Klassen und Funktionen?

Danke auf alle Fälle nochmals für eure Hilfen!

Michi
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Sicher ist es möglich, die Listen in irgendeiner Weise zu verwursten. Es macht aber keinen Sinn, da man das mittels OOP wesentlich übersichtlicher und vor allem nachvollziehbarer gestalten kann (wie man Dir auch schon auf den letzten 7 (?) Thread-Seiten hat versucht zu vermitteln). Ich nehme mal nicht an, dass sich jemand unbezahlt, freiwillig, unnötigerweise die Hirnzellen verdreht, nur damit Dein Listenkrampf funktioniert.

Es ist jetzt der Zeitpunkt gekommen, das Thema ruhen zu lassen, ein Paket Kaffee zu kaufen, die Wasserrechnung zu bezahlen und sich einige Stunden intensivst mit der OOP zu beschäftigen - und zwar nicht anhand Deines aktuellen Problems. Im Anschluss daran (so nach ein oder zwei Wochen) darfst du diesen Thread dann wiederbeleben.

Grüße ... Heiko
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Antworten