Wie man in Python eine Listensubtraktion durchführt
-
Liste in
set
umwandeln, um eine Listensubtraktion in Python durchzuführen - List Comprehensions verwenden, um Listenunterschiede in Python zu erhalten
Dieses Tutorial demonstriert, wie man die Listensubtraktion, oder anders ausgedrückt, die Listenminus-Liste in Python durchführt.
Wie von der Mengenlehre in der Mathematik definiert, bezieht sich die Differenz zweier Mengen auf die Elemente aus der einen Menge, die in der anderen Menge nicht vorhanden sind.
Wenn wir zum Beispiel diese beiden Listen deklarieren
list1 = [1, 2, 4]
list2 = [2, 3]
Die Differenz von list1 - list2
wäre [1, 4]
, während list2 - list1
[3]
wäre.
Liste in set
umwandeln, um eine Listensubtraktion in Python durchzuführen
Mengenlehreoperationen werden in Python unterstützt. Diese Operationen werden jedoch nur vom Datentyp set
unterstützt. Daher müssen Listen in set
konvertiert werden, um die Operation set
zu verwenden. Dies ist möglich, indem man eine Liste um die Funktion set()
umschließt.
Anmerkung: Die Konvertierung einer Liste in eine Menge entfernt jede Art von Ordnung und entfernt doppelte Werte aus der Liste.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
print("A - B = ", setA - setB)
Ausgabe:
A - B = {1, 4, 9, 14}
Das Ergebnis gibt die Differenz zwischen den beiden Mengen aus und entfernt die doppelten Werte.
Wir können die Funktion list()
benutzen, um das Ergebnis von einer set
in eine Liste zu konvertieren.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
setA = set(listA)
setB = set(listB)
list_diff = list(setA - setB)
print("A - B: ", list_diff)
Ausgabe:
A - B: [1, 4, 9, 14]
List Comprehensions verwenden, um Listenunterschiede in Python zu erhalten
Mit Hilfe des List Comprehensions kann geprüft werden, ob ein Element nur in der ersten Liste, nicht aber in der zweiten Liste vorhanden ist. Mit dieser Lösung ist es möglich, die Differenzoperation durchzuführen, ohne die Liste in eine Menge umzuwandeln.
listA = [1, 2, 4, 7, 9, 11, 11, 14, 14]
listB = [2, 3, 7, 8, 11, 13, 13, 16]
listSub = [elem for elem in listA if elem not in listB]
print("A - B =", listSub)
Ausgabe:
A - B = [1, 4, 9, 14, 14]
Diese Lösung bringt die Reihenfolge der Liste nicht durcheinander und entfernt Duplikate.
Allerdings wird der Wert 11
zweimal in listA
wiederholt, und beide Iterationen von 11
werden aus dem Ergebnis von A - B
entfernt, da 11
in beiden Mengen existiert. Dieses Verhalten ist wie erwartet.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
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