Listenschnittpunkt in Python
-
Listenschnittpunkt in Python mit dem
&
-Operator erhalten -
Listenschnittpunkt in Python mit der Methode
intersection()
ermitteln
In diesem Lernprogramm werden wir verschiedene Methoden besprechen, um die Schnittmenge zwischen zwei Listen in Python zu erhalten.
Schnittmenge (oder AND) ist im Grunde eine Operation, die speziell für sets
entwickelt wurde. Sie funktioniert, indem sie die gemeinsamen Elemente in zwei Mengen auswählt. Zum Beispiel,
setA = {1, 2, 3, 4, 5}
setB = {0, 2, 4, 6}
print(setA & setB)
Ausgabe:
{2, 4}
Im obigen Beispiel sind setA
und setB
zwei Mengen, und der &
-Operator führt eine Schnittmengenoperation mit den Sets durch.
Python unterstützt standardmäßig keine direkte Schnittmenge auf Listen. Aber mit ein paar Anpassungen können wir die Schnittmenge auch auf Listen anwenden.
Listenschnittpunkt in Python mit dem &
-Operator erhalten
Der &
-Operator kann, wie oben beschrieben, nicht mit Listen verwendet werden. Also müssen wir unsere Listen mit der Methode set()
in Mengen umwandeln (https://docs.python.org/3/library/functions.html#func-set).
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set1 & set2
list3 = list(set3)
print(list3)
Ausgabe:
[2, 4]
Die Funktion set()
wandelt eine Liste in eine Menge um. Die &
-Operation gibt eine Menge zurück, die alle gemeinsamen Elemente in beiden Mengen enthält. Wie wir wissen, müssen wir diese Operation auf Listen und nicht auf Mengen durchführen. Also müssen wir diese Menge mit der Funktion list()
in eine Liste umwandeln.
Listenschnittpunkt in Python mit der Methode intersection()
ermitteln
Die Methode intersection()
der Klasse set
ist eine weitere Möglichkeit, Schnittmengen auf Mengen in Python zu erzeugen. Ähnlich wie der &
-Operator ist auch sie nur auf Mengen beschränkt. Indem wir aber list1
in eine Menge umwandeln, können wir auch intersection()
mit list1
verwenden.
list1 = [1, 2, 3, 4, 5]
list2 = [0, 2, 4, 6]
set1 = set(list1)
set2 = set(list2)
set3 = set(list1).intersection(list2)
list3 = list(set3)
print(list3)
Ausgabe:
[2, 4]
Die Methode intersection()
gibt ebenfalls eine Menge mit allen gemeinsamen Elementen zurück. Wir müssen sie also mit der Funktion list()
in eine Liste umwandeln.
Listenschnittmenge in Python mit den List Comprehensions ermitteln
Beide oben besprochenen Methoden sind darauf ausgelegt, mit Mengen und nicht mit Listen zu arbeiten. Da wir alle wissen, dass eine Menge keine wiederkehrenden Werte haben kann und ihre Elemente unsortiert sind, funktionieren diese Funktionen nicht gut, wenn wir wiederkehrende Werte in unseren Listen haben oder wir die Reihenfolge in unseren Listen beibehalten wollen.
Die Nachteile der beiden vorherigen Methoden werden in diesem Programmierbeispiel demonstriert.
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
setintersection = list(set(list1) & set(list2))
intersectionmethod = list(set(list1).intersection(list2))
print("The result of set intersection :")
print(setintersection)
print("The result of intersection() method :")
print(intersectionmethod)
Ausgabe:
The result of set intersection :
[2, 4]
The result of intersection() method :
[2, 4]
Wie oben gezeigt, erwarten wir [2, 2, 4]
als richtiges Ergebnis, erhalten aber nur [2, 4]
.
Das List Comprehensions ist eine weitere Möglichkeit, die AND
-Operation auf Listen in Python durchzuführen. Es kann mit wiederkehrenden Werten umgehen und behält auch die Reihenfolge der Elemente bei, die bei den beiden obigen Methoden nicht eingehalten wird.
# Solution 2 Using list comprehensions
list1 = [1, 2, 3, 2, 4, 5]
list2 = [0, 2, 2, 4, 6]
list3 = [x for x in list1 if x in list2]
# all the x values that are in A, if the X value is in B
print(list3)
Ausgabe:
[2, 2, 4]
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert