Vergleich zweier Listen

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.
Antworten
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

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]
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Ich würde das so machen:

Code: Alles auswählen

L3 = [x for x in L1 if x not in L2]
Gruß, mawe
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

Danke habe noch mal alle älteren Beiträge zum Thema Listen durchsucht und habe die Zeile auch gefunden.
Psus82
User
Beiträge: 128
Registriert: Dienstag 6. April 2004, 16:15

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
Drei Dinge die Programmierer hassen:
1.)Sonnenlicht
2.)Frische Luft
3.)Das ätzende Geräusch zwitschernder Vögel
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
[code]#!/usr/bin/env python
import this[/code]
Antworten