Maison  >  Article  >  développement back-end  >  Comment déterminer efficacement la présence d'une sous-liste dans une liste Python ?

Comment déterminer efficacement la présence d'une sous-liste dans une liste Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-26 18:01:03252parcourir

How to Efficiently Determine Sublist Presence in a Python List?

Détermination de la présence d'une sous-liste dans une liste Python

Pour vérifier si une sous-liste existe dans une liste plus grande, on peut utiliser la puissance de la programmation fonctionnelle en Python. Voici une fonction concise qui accomplit cela :

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

La fonction fonctionne en parcourant la plus grande liste lst, en commençant à l'index i et en comparant une tranche de longueur n (la longueur de la sous-liste) avec la sous-liste sublst. Si l'une de ces tranches correspond à sublst, la fonction renvoie True. Sinon, il renvoie False.

Considérez les exemples suivants :

<code class="python">lst1 = [1,0,1,1,1,0,0]
lst2 = [1,0,1,0,1,0,1]

sublistExists(lst1, [1,1,1]) == True
sublistExists(lst2, [1,1,1]) == False</code>

La fonction fonctionne dans une complexité temporelle O(m*n), où m est la longueur de la plus grande liste et n est la longueur de la sous-liste. Il exploite la fonction any() pour quitter efficacement dès la première correspondance, garantissant ainsi l'efficacité des calculs.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn