Python-Programm zur Berechnung der symmetrischen Differenz zwischen zwei Listen

WBOY
Freigeben: 2023-08-28 08:57:29
nach vorne
1419 Leute haben es durchsucht

Python-Programm zur Berechnung der symmetrischen Differenz zwischen zwei Listen

In Python können Sie Listen verwenden, um mehrere Elemente in einer einzigen Variablen zu speichern. Einer der vier integrierten Datentypen in Python zum Speichern von Datensammlungen ist eine Liste; die anderen drei sind Tupel, Mengen und Wörterbücher, jeder mit einem einzigartigen Zweck.

Was ist eine Liste?

Eckige Klammern werden zum Erstellen von Listen verwendet. Die leistungsstärksten Werkzeuge in Python sind Listen, da sie nicht unbedingt homogen sind. Datentypen wie Ganzzahlen, Zeichenfolgen und Objekte können alle in einer Liste gefunden werden. Da Listen veränderbar sind, können sie auch nach ihrer Erstellung geändert werden.

Symmetrische Unterschiede in Listen

Die Menge der Elemente, die in LIST1 oder LIST2, aber nicht in beiden enthalten sind, stellt den symmetrischen Unterschied zwischen den beiden Listen LIST1 und LIST2 dar.

Es gibt mehrere Möglichkeiten, den symmetrischen Unterschied zwischen zwei Listen in Python zu berechnen. Wir werden den effizientesten Weg wählen, um den gleichen Unterschied zu ermitteln.

Wir haben Listen in Mengen umgewandelt und dann symmetrische Unterschiede zwischen diesen Mengen vorgenommen.

Algorithmus

  • Erstellen Sie eine Liste

  • Liste in Satz konvertieren

  • Drucken Sie die Symmetriedifferenz des konvertierten Satzes aus

  • Drucken Sie die symmetrische Differenz der Liste aus

Beispiel

Im Programm unten können wir mit „in“ den Unterschied zwischen zwei Listen ermitteln. Das Schlüsselwort in hat zwei Funktionen.

  • Bestimmen Sie, ob ein Wert in einer Zeichenfolge, Liste, einem Tupel, einem Bereich usw. vorhanden ist.

  • Durchlaufen Sie die Liste wiederholt in einer for-Schleife.

L_1 = [11, 12, 13]
L_2 = [12, 13, 42]
L_3 = [3, 42, 5]

# converting lists to set
set_1 = set(L_1)
set_2 = set(L_2)

# now print the symmetric difference when

# when the converted set is passed as a parameter
print(set_1.symmetric_difference(set_2))

# now print the symmetric difference when list is

# passed as a parameter by converting it to a set
print(set_2.symmetric_difference(L_3))
Nach dem Login kopieren

Ausgabe

{42, 11}
{13, 3, 12, 5}
Nach dem Login kopieren

Beispiel

Hier erstellen wir zwei Listen und erstellen dann eine leere temporäre Variable. Anschließend verwenden wir eine for-Schleife, um die Zahlen in der Liste zu durchlaufen. Die If-Anweisung prüft, ob die Zahl häufig vorkommt, und hängt das Element dann an die erste erstellte temporäre Variable an. Drucken Sie dann die Liste mit verschiedenen Elementen aus.

list_1 = [1, 35, 20, 25, 70, 35, 80]
list_2 = [25, 80, 35]
temp_3 = []
for element in list_1:
   if element not in list_2:
      temp_3.append(element)
print(temp_3)
Nach dem Login kopieren

Ausgabe

[1, 20, 70]
Nach dem Login kopieren

Verwenden Sie das Listenverständnis

Bei dieser Methode konvertieren wir die Liste explizit in eine Menge und verwenden dann den Subtraktionsoperator, um nur eine aus der anderen Liste zu entfernen. Gehen Sie zu „Sammlungen“ in Python, um weitere Sammlungsreferenzen zu erhalten. Dies ist eine ähnliche Strategie wie die, die wir zuvor verwendet haben. Der einzige Unterschied besteht darin, dass anstelle verschachtelter Schleifen eine Listenverständnissyntax verwendet wird.

Beispiel

Das folgende Programm vergleicht zwei Listen: list_1 und list_2. Es erstellt einen Satz aus der zweiten Liste und filtert damit alle Werte heraus, die in beiden Listen erscheinen. Das Ergebnis ist eine neue gefilterte Liste (temp_3), die nur Elemente aus list_1 enthält, die nicht in SET_1 (list_2) vorhanden sind.

list_1 = [13, 15, 22, 25, 30, 54, 40]
list_2 = [54, 45, 30, 13]
SET_1 = set(list_2)
temp_3 = [x for x in list_1 if x not in SET_1]
print(temp_3)
Nach dem Login kopieren

Ausgabe

[15, 22, 25, 40]
Nach dem Login kopieren

Set() nicht verwenden

Bei dieser Methode werden Elemente mithilfe grundlegender Kombinationstechniken aus zwei Listen kopiert und dabei regelmäßig überprüft, ob sie in der anderen Liste vorhanden sind.

Beispiel

Im folgenden Programm definieren wir eine Funktion namens Difference, die zwei Listen als Parameter akzeptiert. Diese Funktion erstellt eine neue Liste list_dif, die Elemente enthält, die nicht in beiden Originallisten vorhanden sind. Anschließend werden diese neue Liste und die Differenz zwischen den beiden ursprünglichen Listen ausgedruckt. In diesem Beispiel wird [1, 12, 25, 22, 30, 20] gedruckt.

# this method helps to get difference of two lists

# by not using set()
def Difference(list1, list2):
   list_dif = [i for i in list_1 + list_2 if i not in list_1 or i not in list_2]
   return list_dif
list_1 = [1, 12, 25, 22, 30, 65, 70]
list_2 = [65, 20, 70]
list_3 = Difference(list_1, list_2)
print(list_3)
Nach dem Login kopieren

Ausgabe

[1, 12, 25, 22, 30, 20]
Nach dem Login kopieren

Verwenden Sie symmetrische Differenz

Die Methode

Symmetrydifference() gibt das Element in der ersten oder zweiten Gruppe zurück. Im Gegensatz zu gemeinsam genutzten Elementen zweier Sammlungen gibt diese Methode keinen Schnittpunkt zurück.

Beispiel

list_1 = [23, 18, 45, 25, 40, 23, 40]
list_2 = [23, 40, 35]
set_difference = set(list_1).symmetric_difference(set(list_2))
temp_3 = list(set_difference)
print(temp_3)
Nach dem Login kopieren

Ausgabe

[35, 45, 18, 25]
Nach dem Login kopieren

Fazit

In diesem Artikel haben wir vier verschiedene Methoden verwendet, um die symmetrische Differenz zwischen zwei Listen über Python zu berechnen. Jede Methode hat eine gewisse Einzigartigkeit und eine andere Herangehensweise an die Aufgabe.

Das obige ist der detaillierte Inhalt vonPython-Programm zur Berechnung der symmetrischen Differenz zwischen zwei Listen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!