Vérification de la présence d'une sous-liste en Python
Déterminer si une sous-liste existe dans une liste plus grande est une tâche de programmation courante. Python propose plusieurs méthodes pour y parvenir, mais une approche particulièrement utile consiste à utiliser le découpage de liste et une fonction personnalisée.
Considérons l'exemple suivant :
<code class="python">list1 = [1,0,1,1,1,0,0] list2 = [1,0,1,0,1,0,1]</code>
Notre objectif est de créer une fonction sublistExists(list1, sublist) qui renvoie True si la sous-liste est présente dans list1 et False sinon.
La fonction contain_sublist() ci-dessous exploite le découpage de liste pour effectuer cette vérification :
<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>
Cette fonction fonctionne en parcourant lst et en vérifiant si une tranche de longueur n (la longueur de sublst) est égale à sublst. Il utilise la fonction any() pour s'arrêter dès qu'une correspondance est trouvée, ce qui entraîne une complexité temporelle O(m * n) efficace, où m et n sont respectivement les longueurs de lst et sublst.
Exemple d'utilisation :
<code class="python">sublistExists(list1, [1,1,1]) # True sublistExists(list2, [1,1,1]) # False</code>
En implémentant cette fonction personnalisée, nous pouvons facilement vérifier la présence d'une sous-liste au sein d'une liste plus grande en Python.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!