Seite 1 von 1

Sublisten zusammenfügen und doppelte Elemente eliminieren

Verfasst: Montag 2. September 2013, 09:41
von mathematik
Hallo zusammen,

ich habe folgendes Problem:
Ich habe eine Liste mit 10000 Sublisten. Diese möchte ich jetzt so zusammenfügen, dass immer zwei aufeinander folgende Sublisten eine neue Subliste bilden, wobei die doppelten Zahlen eliminiert werden.
Beispiel:
ursprüngliche Liste

Code: Alles auswählen

K=[[1,2,3,4],[1,4,5,6,7,8,9],[3,43,45,35,57,86,346,239],[1,3,5,13,51,13],[8,95,64],[78,12]]
Ergebnis:

Code: Alles auswählen

Kneu=[[1,2,3,4,5,6,7,8,9],[1,4,5,6,7,8,9,3,43,45,35,57,86,346,239],[3,43,45,35,57,86,346,239,1,5,13,51,13],[8,95,64,78,12]]
Um meine Listen zusammenzufügen, habe ich mir folgendes überlegt:

Code: Alles auswählen

Kneu=[]
for i in range(len(K)-1):
... Kneu.append(K[i]+K[i+1]
Nur wie kann ich meine doppelten Elemente möglichst effizient eliminieren?
Vielen Dank für eure Hilfe!! :)

Re: Sublisten zusammenfügen und doppelte Elemente eliminiere

Verfasst: Montag 2. September 2013, 10:16
von /me
mathematik hat geschrieben:Nur wie kann ich meine doppelten Elemente möglichst effizient eliminieren?
Musst du die Reihenfolge beibehalten? Wenn nicht, dann bietet sich ein Set für die Lösung an.

Code: Alles auswählen

>>> x = [1, 2, 3, 4, 5, 6]
>>> y = [0, 2, 4, 6, 8, 10]
>>> print x + y
[1, 2, 3, 4, 5, 6, 0, 2, 4, 6, 8, 10]
>>> print set(x + y)
set([0, 1, 2, 3, 4, 5, 6, 8, 10])
>>> print list(set(x + y))
[0, 1, 2, 3, 4, 5, 6, 8, 10]
Hier stimmt jetzt die Reihenfolge zufällig noch, aber das ist nicht garantiert.

Re: Sublisten zusammenfügen und doppelte Elemente eliminiere

Verfasst: Montag 2. September 2013, 10:20
von mathematik
Ah super danke! Set habe ich gesucht :)

Re: Sublisten zusammenfügen und doppelte Elemente eliminiere

Verfasst: Montag 2. September 2013, 11:59
von Sirius3
So:

Code: Alles auswählen

KNeu=[list(set(a)|set(b)) for a,b in zip(K[:-1],K[1:])]