Seite 1 von 1
Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 15:27
von Friedericus
Hiho,
ich hab grad ein Problem, an dem ich nicht weiterkomm:
ich hab eine Liste, z.B.:
Code: Alles auswählen
a = [[1,2],[2,2],[3,2],[1,3],[2,3],[3,3]]
Nun sollen diese Wertepaare in eine neue Liste übertragen werden.
Dabei soll der erste Wert eines jeden Paares mit dem ersten Wert in der neuen Liste verglichen werden, und falls dieser Wert schon existiert, nicht einsortiert werden.
Die neue Liste sollte dann so aussehen:
Re: Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 15:28
von EyDu
Hallo!
Das kannst du mit Mengen (sets) erledigen.
Sebastian
Re: Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 15:37
von numerix
Achtung: Nicht performant!
Code: Alles auswählen
>>> a = [[1,2],[2,2],[3,2],[1,3],[2,3],[3,3]]
>>> [e for i,e in enumerate(a) if i<=zip(*a)[0].index(e[0])]
[[1, 2], [2, 2], [3, 2]]
Re: Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 16:23
von Friedericus
Also ich hab das jetzt mit Mengen mal versucht, aber set() will ja offenbar keine Wertepaare
Re: Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 16:45
von BlackJack
@Friedericus: Dir geht es ja auch nicht um das Paar sondern um den ersten Wert. Du wirst schon etwas Programmieren müssen und nicht einfach nur `set()` Anwenden und fertig.
Re: Verschachtelte Listen vergleichen
Verfasst: Montag 29. November 2010, 21:44
von numerix
Friedericus hat geschrieben:Also ich hab das jetzt mit Mengen mal versucht, aber set() will ja offenbar keine Wertepaare
Das liegt nicht an den Wertepaaren, sondern daran, dass es sich bei den von dir dafür verwendeten Sequenzen um Listen handelt, die veränderlich sind. Wenn du stattdessen mit Tupeln arbeiten würdest, könntest du ein set daraus machen. Allerdings hilft dir das bei der Lösung deiner Problemstellung natürlich auch nicht, weil - wie BlackJack schon angemerkt hat - es ja nicht damit getan ist, aus der Liste eine Menge zu machen.