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>
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>
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!