Heim >Backend-Entwicklung >Python-Tutorial >Wie können Sie die Präsenz von Unterlisten innerhalb einer größeren Liste in Python effizient bestimmen?
Suchen von Listen nach dem Vorhandensein von Unterlisten in Python
Das Identifizieren des Vorhandenseins einer Unterliste innerhalb einer größeren Liste ist eine häufige Programmieraufgabe. Python bietet eine einfache Lösung für dieses Problem mithilfe einer benutzerdefinierten Funktion.
Problemformulierung:
Bestimmen Sie anhand zweier Listen, Liste1 und Liste2, ob die Elemente von Liste2 als vorhanden sind eine zusammenhängende Sequenz innerhalb von list1. Betrachten Sie die folgenden Testfälle:
<code class="python">list1 = [1,0,1,1,1,0,0] list2 = [1,0,1,0,1,0,1] # Should return True sublistExists(list1, [1,1,1]) # Should return False sublistExists(list2, [1,1,1])</code>
Implementierung:
Pythons funktionale Programmierfunktionen ermöglichen eine prägnante Lösung mithilfe der Funktion „any()“ und Listenverständnissen:
<code class="python">def contains_sublist(lst, sublst): n = len(sublst) return any((sublst == lst[i:i+n]) for i in range(len(lst)-n+1))</code>
Diese Funktion benötigt zwei Argumente: lst (die Hauptliste) und sublst (die Unterliste, nach der gesucht werden soll). Es berechnet die Länge von sublst und generiert mithilfe eines Listenverständnisses eine Folge von Indexbereichen innerhalb von lst. Für jeden Bereich wird sublst mit den entsprechenden Elementen in lst verglichen. Wenn eine Übereinstimmung gefunden wird, gibt any() True zurück; andernfalls wird False zurückgegeben.
Beispielverwendung:
In den bereitgestellten Testfällen gibt sublistExists(list1, [1,1,1]) True zurück und sublistExists( list2, [1,1,1]) gibt wie erwartet False zurück.
Hinweis:
Die Funktion „any()“ optimiert die Suche, indem sie bei der ersten Übereinstimmung beendet wird . Die Funktion hat eine Zeitkomplexität von O(m*n), wobei m die Länge von lst und n die Länge von sublst ist.
Das obige ist der detaillierte Inhalt vonWie können Sie die Präsenz von Unterlisten innerhalb einer größeren Liste in Python effizient bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!