Seite 1 von 1

Vergleich zweier Listen

Verfasst: Mittwoch 7. Juli 2004, 09:46
von Psus82
Ich will zwei Listen miteinander vergleichen.
Wie schaffe ich das mir die Listenelemente ausgegeben werden die nicht gleich sind?
Die Listen sehen ungefähr so aus:
L1=[test1,test2,test3] und L2=[test1,test2]
jetzt möchte ich das test3 seperat in einer Liste gespeichert wird.
Danke für eueren Support im vorraus.

Gruß
Psus82[/code]

Verfasst: Mittwoch 7. Juli 2004, 10:49
von mawe
Hi!

Ich würde das so machen:

Code: Alles auswählen

L3 = [x for x in L1 if x not in L2]
Gruß, mawe

Danke

Verfasst: Mittwoch 7. Juli 2004, 11:14
von Psus82
Danke habe noch mal alle älteren Beiträge zum Thema Listen durchsucht und habe die Zeile auch gefunden.

Ne andere Frage.

Verfasst: Freitag 23. Juli 2004, 14:24
von Psus82
Hi,


Wenn ich mit der Zeile oben die Listen vergleiche und es wurde was aus der Liste L2 gelöscht gibt er mir bei L3 eine leere Liste aus.
Ist es irgendwie möglich die Zeile so zu erweitern das wenn etwas in L1 vorkommt was in L2 nicht mehr vorkommt auch angezeigt wird.
Vielleicht mit einer seperaten Unterscheidung, vielleicht eine print ausgabe ob es dazugekommen oder rausgelöscht wird?

Gruß
Psus82

Verfasst: Freitag 23. Juli 2004, 14:46
von Dookie
Hi Psus82,

wenn es sich bei den Elementen in den Listen um einfache Werte oder Strings handelt, und jeder Wert ohnehin nur einmal in der Liste erscheint, wandle die Listen in Sets um.

Code: Alles auswählen

from sets import Set

a = Set([1,2,3,4,5,6])
b = Set([2,4,6,8,10,12])
print "a", a
print "b", b
print "a-b", a-b
print "b-a", b-a
print "a&b", a&b
print "a^b", a^b
Die Sets sind nicht geordnet, wenn Du dann eine geordnete Ausgabe haben willst, wandle das Set wieder zurück in eine Liste listA = list(a) und lass die dann sortieren listA.sort().


Gruß

Dookie