Seite 1 von 1
Listen vergleichen
Verfasst: Montag 13. Januar 2020, 19:51
von toper
Hallo zusammen,
ich möchte gerne 2 Listen so verleichen, dass ich nacher weiß welche einträge in welcher List einmalig sind.
Also zum beispiel:
Dann möchte ich als output:
1,2 nur in liste x
3,4,5 in liste x und y
6,7 nur in Liste y
Gibt es da einen einfachen Befehl?
Re: Listen vergleichen
Verfasst: Montag 13. Januar 2020, 20:02
von Sirius3
Dafür benutzt man `set`s und deren Methoden.
Re: Listen vergleichen
Verfasst: Dienstag 14. Januar 2020, 07:26
von Jankie
Mit Sets oder List Comprehensions, wobei die Set Methoden am schnellsten sind.
Beispiele:
Code: Alles auswählen
liste1 = [1,2,3,4,5]
liste2 = [3,4,5,6,7]
#mit List Comprehensions
nur_in_liste1 = [x for x in liste1 if x not in liste2]
gemeinsam = [x for x in liste1 if x in liste2]
nur_in_liste2 = [x for x in liste2 if x not in liste1]
print(nur_in_liste1)
print(gemeinsam)
print(nur_in_liste2)
#mit Sets und deren Methoden
nur_in_liste1 = set(liste1).difference(liste2)
gemeinsam = set(liste1).intersection(liste2)
nur_in_liste2 = set(liste2).difference(liste1)
print(nur_in_liste1)
print(gemeinsam)
print(nur_in_liste2)
#oder so:
nur_in_liste1 = set(liste1) - set(liste2)
gemeinsam = set(liste1) & set(liste2)
nur_in_liste2 = set(liste2)- set(liste1)
print(nur_in_liste1)
print(gemeinsam)
print(nur_in_liste2)
Re: Listen vergleichen
Verfasst: Dienstag 14. Januar 2020, 14:27
von ThomasL
und man kann das noch beschleunigen, indem man die Umwandlung der Listen nur einmal macht und nicht 3 mal.
Code: Alles auswählen
set1 = set(liste1)
set2 = set(liste2)
nur_in_liste1 = set1 - set2
gemeinsam = set1 & set2
nur_in_liste2 = set2 - set1
Re: Listen vergleichen
Verfasst: Dienstag 14. Januar 2020, 17:09
von toper
Vielen Dank,
ich werde das mal versuchen.