Wie kann man in Python effizient feststellen, ob eine Unterliste vorhanden ist?

DDD
Freigeben: 2024-10-26 21:55:29
Original
144 Leute haben es durchsucht

 How to Efficiently Determine if a Sublist Exists in Python?

Erkennen des Vorhandenseins einer Unterliste in Python

Die vorliegende Aufgabe besteht darin, eine Funktion zu entwickeln, die das Vorhandensein einer Unterliste innerhalb einer größeren Liste überprüft. Bei zwei Listen, eine als größere Liste (Liste1) und die andere als potenzielle Unterliste (Liste2), sollte die Funktion bestimmen, ob Liste2 tatsächlich eine Unterliste von Liste1 ist.

Implementierung der Funktion

Python bietet eine vielseitige Funktion namens „any()“, die für diesen Zweck genutzt werden kann. Der folgende Codeausschnitt zeigt, wie man eine Funktion erstellt, die any() verwendet:

<code class="python">def sublist_exists(lst, sublst):
    n = len(sublst)
    return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>
Nach dem Login kopieren

Diese Funktion scannt sorgfältig die größere Liste (lst), indem sie deren Elemente nacheinander durchläuft. Für jedes Element am Index i wird eine zusammenhängende Unterliste der Länge n extrahiert und mit der potenziellen Unterliste (sublst) verglichen. Wenn eine Übereinstimmung erkannt wird, gibt die Funktion sofort „True“ zurück und zeigt damit das Vorhandensein der Unterliste an. Dieser Vorgang wird fortgesetzt, bis entweder eine Übereinstimmung gefunden wird oder die gesamte größere Liste erschöpft ist. In diesem Fall gibt die Funktion „Falsch“ zurück.

Überlegungen zur Leistung

Es ist wichtig zu beachten dass die Zeitkomplexität dieser Funktion O(m*n) ist, wobei m die Länge der größeren Liste und n die Länge der möglichen Unterliste ist. Für jede Iteration führt die Funktion eine Unterlistenvergleichsoperation durch, und die Anzahl der Iterationen wird durch die Differenz zwischen m und n plus eins eingeschränkt.

Beispielverwendung

Lassen Sie uns Veranschaulichen Sie die Verwendung der Funktion sublist_exists anhand der bereitgestellten Beispiele:

<code class="python">>>> sublist_exists([1,0,1,1,1,0,0], [1,1,1])
True

>>> sublist_exists([1,0,1,0,1,0,1], [1,1,1])
False</code>
Nach dem Login kopieren

Im ersten Beispiel ist [1,1,1] tatsächlich eine Unterliste der größeren Liste, daher gibt die Funktion True zurück. Im zweiten Beispiel erscheint [1,1,1] nicht in der größeren Liste, daher gibt die Funktion False zurück.

Das obige ist der detaillierte Inhalt vonWie kann man in Python effizient feststellen, ob eine Unterliste vorhanden ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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!