Localisation de la Nième occurrence d'une sous-chaîne en Python
Identifier la position d'une occurrence de sous-chaîne spécifique dans une chaîne plus grande est une tâche de programmation fréquente . Pour les développeurs Python débutants, y parvenir de manière efficace et idiomatique peut poser un défi. Cet article vise à élucider les différentes méthodes disponibles pour trouver la nième occurrence d'une sous-chaîne, en se concentrant sur l'approche la plus pythonique.
Approche itérative
Une solution itérative simple implique rechercher la sous-chaîne plusieurs fois. Par défaut, la méthode find() de Python localise uniquement la première occurrence. Pour obtenir la nième occurrence, nous pouvons rechercher successivement à partir de la position qui suit immédiatement l'occurrence précédente :
<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int: start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+len(needle)) n -= 1 return start</code>
Cette méthode est simple et économe en mémoire.
Occurrences superposées
Occurrences superposées
<code class="python">def find_nth_overlapping(haystack, needle, n): start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+1) n -= 1 return start</code>
Si la nième occurrence superposée est souhaitée, l'incrément dans la méthode find() doit être ajusté :
Considérations pythoniques
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!