Wie kann man in Python effizient eine Liste von einer anderen subtrahieren?

Patricia Arquette
Freigeben: 2024-10-23 13:50:03
Original
987 Leute haben es durchsucht

How to Subtract One List from Another Efficiently in Python?

Eine Liste von einer anderen subtrahieren: Effiziente Techniken und benutzerdefinierte Implementierung

Das Subtrahieren einer Liste von einer anderen ist eine häufige Operation in der Programmierung. In Python kann die direkte Ausführung dieser Operation mit dem Operator „-“ einschränkend sein. Um Listen effektiv zu subtrahieren, sollten Sie die folgenden Ansätze in Betracht ziehen:

Listenverständnis

Eine Liste (y) von einer anderen (x) subtrahieren und dabei die Reihenfolge der Elemente in x beibehalten , verwenden Sie ein Listenverständnis:

<code class="python">[item for item in x if item not in y]</code>
Nach dem Login kopieren

Dieser Ansatz iteriert über jedes Element in x und nimmt es nur dann in die neue Liste auf, wenn es nicht in y vorhanden ist.

Differenz festlegen

Wenn die Reihenfolge der Elemente nicht entscheidend ist, besteht ein effizienterer Ansatz darin, eine Mengendifferenz zu verwenden:

<code class="python">list(set(x) - set(y))</code>
Nach dem Login kopieren

Diese Methode erstellt aus jeder Liste eine Menge und führt eine Subtraktion durch sie und wandelt den resultierenden Satz zurück in eine Liste. Es ist schneller als das Listenverständnis, behält jedoch nicht die ursprüngliche Reihenfolge bei.

Benutzerdefinierte Klasse

Damit die Subtraktionssyntax (x - y) direkt auf Listen funktionieren kann, eine kann eine benutzerdefinierte Klasse erstellen:

<code class="python">class MyList(list):
    ...
    def __sub__(self, other):
        ...</code>
Nach dem Login kopieren

Das Überschreiben der __sub__-Methode ermöglicht ein benutzerdefiniertes Subtraktionsverhalten und stellt die gewünschte Funktionalität bereit.

Beispielverwendung:

<code class="python">x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
y = [1, 3, 5, 7, 9]

# List Comprehension
result_comprehension = [item for item in x if item not in y]
print(result_comprehension)  # [0, 2, 4, 6, 8]

# Set Difference
result_set = list(set(x) - set(y))
print(result_set)  # [0, 2, 4, 6, 8]

# Custom Class
class MyList(list):
    ...
x_custom = MyList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y_custom = MyList([1, 3, 5, 7, 9])
result_custom = x_custom - y_custom 
print(result_custom)  # [0, 2, 4, 6, 8]</code>
Nach dem Login kopieren

Diese Ansätze bieten je nach den spezifischen Anforderungen und dem gewünschten Verhalten unterschiedliche Möglichkeiten zum Subtrahieren von Listen in Python.

Das obige ist der detaillierte Inhalt vonWie kann man in Python effizient eine Liste von einer anderen subtrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Neueste Artikel des Autors
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!