In diesem Tutorial werden wir zwei Python- Methoden entdecken, um die Differenz zwischen zwei Listen zu finden. Eine der Methoden ist die Verwendung von Python Set. Sie wandelt die Listen zunächst in Mengen um und ermittelt dann den eindeutigen Teil daraus.
Andere Methoden, die keine Mengen sind, vergleichen zwei Listen Element für Element und sammeln die eindeutigen. Diese können wir mit Hilfe von verschachtelten for-Schleifen und dem Listenverständnis implementieren.
Wenn Sie übrigens die Mengen in Python nicht kennen, dann folgen Sie dem folgenden Tutorial. Es wird Ihnen schnell zeigen, wie Python die mathematische Form von Set implementiert.
Python Set
Python Ways to Find the Difference Between Two Lists
Python Set scheint die naheliegendste Wahl zu sein, um sowohl die Gemeinsamkeit als auch die Differenz zweier Listen zu identifizieren. Wir werden uns also zuerst damit beschäftigen und dann verschachtelte Schleifen und Listenverständnis verwenden.
Bevor wir zum Lösungsteil übergehen, lassen Sie uns die Testparameter definieren, d.h.,
# Test Inputlist_a = list_b =
Und wir wollen, dass unsere Lösung die folgende Ausgabe liefert:
# Expected Result# list_out = list_a - list_blist_out =
Beginnen wir damit, ein Programm zu erstellen, um die Differenz zwischen zwei Listen zu finden, indem wir zunächst Mengen verwenden.
Benutze set(), um den Unterschied zwischen zwei Listen zu finden
In diesem Ansatz leiten wir zunächst zwei SETs (sagen wir set1 und set2) aus den LISTs (sagen wir list1 und list2) ab, indem wir sie an die set()-Funktion übergeben. Danach führen wir die Set-Differenz-Operation durch. Es werden die Elemente aus Liste1 zurückgegeben, die in der zweiten Liste nicht vorhanden sind.
Hier ist das Python-Beispielprogramm, um die Differenz zweier Listen zu ermitteln.
"""Desc: Using set() to find the difference between two lists in Python"""def list_diff(list1, list2): return (list(set(list1) - set(list2))) # Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Nach der Ausführung sollten Sie das folgende Ergebnis sehen:
Ohne set(), mit verschachtelten Schleifen
In dieser Methode verwenden wir eine verschachtelte For-Schleife, um jedes Element der ersten Liste mit der zweiten zu vergleichen. Während des Durchlaufs wird jedes nicht übereinstimmende Element an eine neue (leere) Liste angehängt.
Die neue Liste enthält schließlich die Differenz zwischen den beiden angegebenen Sequenzen. Nachfolgend finden Sie ein Beispielprogramm zur Demonstration dieses Ansatzes.
"""Desc: Nested loop to find the difference between two lists in Python"""def list_diff(list1, list2): out = for ele in list1: if not ele in list2: out.append(ele) return out# Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Nach der Ausführung des obigen Programms sollten Sie folgendes Ergebnis sehen:
Ohne set(), unter Verwendung von Listenverständnis
Es handelt sich um eine ähnliche Technik wie die, die wir im vorherigen Programm verwendet haben. Hier haben wir die verschachtelten Schleifen durch die Syntax des Listenverständnisses ersetzt.
Sieh dir das folgende Beispiel an:
"""Desc: List comprehension to find the difference between two lists in Python"""def list_diff(list1, list2): out = return out# Test Inputlist1 = list2 = # Run Testprint(list_diff(list1, list2))
Nachdem du das obige Programm ausgeführt hast, solltest du das folgende Ergebnis sehen: