Heim >Backend-Entwicklung >Python-Tutorial >Wie überprüfe ich in Python, ob sich Elemente aus einer Liste mit einer anderen überschneiden?
In Python ist die Bestimmung, ob Elemente aus einer Liste in einer anderen Liste vorhanden sind, für verschiedene Datenbearbeitungsaufgaben von entscheidender Bedeutung. In diesem Artikel werden verschiedene Methoden zum Testen dieser Überschneidung, zur Bewertung ihrer Effizienz und zur Bereitstellung von Best Practices untersucht.
1. Generatorausdruck
<code class="python">any(i in a for i in b)</code>
Diese Methode durchläuft eine Liste und prüft die Mitgliedschaft in der anderen und gibt „True“ zurück, wenn eine Übereinstimmung gefunden wird. Seine zeitliche Komplexität beträgt O(n), wobei n die Länge der größeren Liste ist.
2. Schnittmenge festlegen
<code class="python">bool(set(a) & set(b))</code>
Dieser Ansatz wandelt beide Listen in Mengen um und findet deren Schnittmenge. Wenn die Schnittmenge nicht leer ist, wird True zurückgegeben. Die Zeitkomplexität im ungünstigsten Fall dafür ist O(n·m), wobei n und m die Längen der Listen sind.
3. Hybrid-Set-Schnittpunkt
<code class="python">a = set(a) any(i in a for i in b)</code>
Diese Methode konvertiert nur eine Liste in eine Menge und durchläuft die andere Liste, wobei sie auf Mengenzugehörigkeit prüft. Es vermeidet die Erstellung von Zwischenmengen und ist somit schneller als die herkömmliche Mengenschnittmenge.
4. Isdisjoint-Methode
<code class="python">not set(a).isdisjoint(b)</code>
Dieser Ansatz verwendet die isdisjoint-Methode eingefrorener Mengen, um zu bestimmen, ob sie gemeinsame Elemente haben. Ist dies nicht der Fall, ist das Ergebnis „False“; andernfalls ist es wahr.
Worst Case:
In den meisten Fällen ist die isdisjunkte Methode Die Methode ist am schnellsten, da sie von zeitkonstanten Satzmitgliedschaftsprüfungen profitiert.
Bester Fall für Generatorausdruck:
Zu berücksichtigende Faktoren:
Das obige ist der detaillierte Inhalt vonWie überprüfe ich in Python, ob sich Elemente aus einer Liste mit einer anderen überschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!