Ich würde gerne Wissen ob es in Python möglich ist zwei Listen zu vergleichen und die Abweichungen in einer anderen Liste zu speichern?
Für Support wäre ich dankbar.
M.f.G
Psus
PS(an x-Herbert gerichtet):Ich habe das gemeint was ich geschrieben habe und es funktioniert auch.
Kann ich zwei Listen in Python vergleichen?
- strogon14
- User
- Beiträge: 58
- Registriert: Sonntag 23. Februar 2003, 19:34
- Wohnort: Köln
- Kontaktdaten:
Das heißt, Du möchtest wissen, welche Elemente sich in zwei Listen unterscheiden?
Dazu gibt seit neuestem in Python 2.3 das Modul sets.
Wenn Du nicht nur wissen willst, welche Elemente unterschiedlich sind, sondern auch an welcher Stelle sich die Listen unterscheiden, musst Du wohl "von Hand" über die Listen iterieren.
... speichert in l3 alle Werte aus l2, die sich gegenüber l1 verändert haben mit ihrem Index. Geht natürlich davon aus, dass l1 und l2 gleiche Länge haben, kann man aber leicht so anpassen, dass das keine Rolle spielt.
Dazu gibt seit neuestem in Python 2.3 das Modul sets.
Wenn Du nicht nur wissen willst, welche Elemente unterschiedlich sind, sondern auch an welcher Stelle sich die Listen unterscheiden, musst Du wohl "von Hand" über die Listen iterieren.
Code: Alles auswählen
l1 = [1,2,3,4,5,6]
l2 = [1,2,0,4,5,6]
l3 = []
for i in xrange(len(l1)):
if l1[i] <> l2[i]:
l3.append((i, l2[i]))
Hi,
Die ungleichen Paare (allerdings ohne den Index) bekommst Du so:
Dabei ist es egal, ob die Listen gleich lang sind, die Ergebnisliste hat aber maximal die Länge min(len(l1), len(l2)).
Für ungleichlange Listen geht folgendes:
Viele Grüße, Volker
Die ungleichen Paare (allerdings ohne den Index) bekommst Du so:
Code: Alles auswählen
filter(lambda x: x[0]!=x[1], zip(l1, l2))
Für ungleichlange Listen geht folgendes:
Code: Alles auswählen
filter(lambda x: x[0]!=x[1], map(None, *(l1, l2)))