Maison > développement back-end > Tutoriel Python > Comment trouver la Nième occurrence d'une chaîne en Python ?

Comment trouver la Nième occurrence d'une chaîne en Python ?

DDD
Libérer: 2024-10-20 07:30:29
original
788 Les gens l'ont consulté

How to Find the Nth Occurrence of a String in 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal