Maison >développement back-end >Tutoriel Python >Comment trouver la Nième occurrence d'une chaîne en Python ?
Trouver la nième occurrence d'une chaîne en Python
Identifier l'index de la nième occurrence d'une sous-chaîne dans une chaîne est une tâche courante en programmation. Cependant, la méthode find intégrée de Python ne fournit pas de moyen simple de spécifier le numéro d'occurrence.
Solution :
Au lieu de s'appuyer directement sur la méthode find, voici une solution Pythonique qui localise de manière itérative la sous-chaîne et incrémente le nombre d'occurrences jusqu'à ce qu'elle atteigne la valeur souhaitée :
<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int: """Find the index of the nth occurrence of needle in haystack.""" start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+len(needle)) n -= 1 return start</code>
Utilisation :
Pour trouver l'index du deuxième occurrence de la sous-chaîne "foofoo" dans la chaîne "foofoofoofoo", vous appelleriez :
<code class="python">find_nth("foofoofoofoo", "foofoo", 2)</code>
Cela renverrait l'index 6, correspondant à la position de départ de la deuxième sous-chaîne "foofoo".
Considérations relatives aux occurrences qui se chevauchent :
Si vous avez besoin de trouver l'index de la nième occurrence qui se chevauche de la sous-chaîne, vous pouvez modifier la fonction find_nth pour incrémenter la position de départ. par 1 au lieu de la longueur de l'aiguille :
<code class="python">def find_nth_overlapping(haystack, needle, n): """Find the index of the nth overlapping occurrence of needle in haystack.""" start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+1) n -= 1 return start</code>
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!