Python Méthode String find() avec exemples

⚡ Résumé intelligent

Python La méthode intégrée `find()` renvoie l'indice de la première occurrence d'une sous-chaîne dans une chaîne. Elle renvoie -1 si la sous-chaîne est absente, évitant ainsi les exceptions.

  • 🔍 syntaxe: La fonction find() prend une sous-chaîne ainsi que des indices de début et de fin optionnels pour limiter la plage de recherche.
  • (I.e. Premier match : La fonction find() renvoie l'indice le plus bas de la première occurrence, en parcourant de gauche à droite.
  • Pas trouvé: La fonction find() renvoie -1 au lieu de générer une erreur lorsque la sous-chaîne est absente.
  • (I.e. rfind(): La méthode rfind() renvoie l'index le plus élevé, en effectuant la recherche à partir de la droite.
  • ⚠️ indice(): La méthode index() se comporte comme find() mais lève une exception ValueError lorsque la sous-chaîne est manquante.
  • 🤖 Aide à l'IA : Les assistants de codage IA génèrent une logique find() et optimisent la recherche de sous-chaînes dans les pipelines de texte NLP.

Python Recherche de chaîne()

Qu'est-ce que le Python Recherche de chaîne() ?

Python Recherche de chaîne() est une fonction disponible dans le Python Bibliothèque permettant de trouver l'indice de la première occurrence d'une sous-chaîne dans une chaîne donnée. La fonction `find()` renvoie -1 au lieu de lever une exception lorsque la sous-chaîne spécifiée est absente de la chaîne donnée. Pythonle plus utilisé méthodes de chaîne pour localiser du texte.

Syntaxe de Python recherche de chaîne()

La syntaxe de base du Python La fonction find() est la suivante :

string.find(substring,start,end)

Paramètres de la méthode find()

Voici les trois paramètres de la fonction find() dans Python:

  • sous-chaîne: La sous-chaîne que vous souhaitez rechercher dans la chaîne donnée.
  • Commencer: (facultatif) La valeur de départ à partir de laquelle la recherche de la sous-chaîne commencera. Par défaut, elle est 0.
  • fin: (facultatif) Valeur finale de la recherche de la sous-chaîne. Par défaut, cette valeur correspond à la longueur de la chaîne.

Exemple de méthode find() avec des valeurs par défaut

Les paramètres transmis à Python La méthode `find()` prend comme arguments la sous-chaîne à rechercher, ainsi que `start` et `end`. La valeur par défaut de `start` est 0, et `end` correspond à la longueur de la chaîne.

Dans cet exemple, nous utiliserons la méthode find() dans Python avec des valeurs par défaut.

La méthode `find()` recherche la sous-chaîne et renvoie la position de sa première occurrence. Si la sous-chaîne apparaît plusieurs fois dans la chaîne, elle renvoie tout de même l'indice ou la position de la première occurrence.

Exemple :

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Sortie :

The position of Tutorials is at: 12

Exemple de find() utilisant l'argument de démarrage

Vous pouvez rechercher une sous-chaîne dans la chaîne donnée et spécifier la position de départ de la recherche. Le paramètre `start` permet d'effectuer cette recherche.

L'exemple ci-dessous spécifie la position de départ comme étant 20, et la méthode find() dans Python La recherche commencera à partir de la position 20. Ici, la position finale correspond à la longueur de la chaîne ; la recherche s’effectuera donc jusqu’à la fin de la chaîne à partir de la position 20.

Exemple :

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Sortie :

The position of Tutorials is at 48

Exemple de find() utilisant les arguments de début et de fin

En utilisant les paramètres de début et de fin, nous pouvons limiter la recherche au lieu de parcourir la chaîne entière.

Exemple :

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Sortie :

The position of Tutorials is at 12

Exemple de la méthode find() pour trouver la position d'une sous-chaîne donnée dans une chaîne de caractères

Nous savons que la fonction `find()` permet de trouver l'indice de la première occurrence d'une sous-chaîne. Elle renvoie -1 si la sous-chaîne est absente de la chaîne donnée. L'exemple ci-dessous illustre l'indice lorsque la chaîne est présente et -1 lorsqu'elle est absente.

Exemple :

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Meilleur site is at:", mystring.find("Meilleur site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Sortie :

The position of Meilleur site is at: 27
The position of Guru99 is at: -1

Python chaîne trouver()

Le Python La fonction `rfind()` est similaire à la fonction `find()`, à la différence que `rfind()` renvoie l'indice le plus élevé de la sous-chaîne donnée, tandis que `find()` renvoie l'indice le plus bas, c'est-à-dire le tout premier indice. Toutes deux, `rfind()` et `find()`, renvoient -1 si la sous-chaîne est absente.

Dans l'exemple ci-dessous, nous avons une chaîne de caractères « Meet » Guru99 Site de tutoriels. Meilleur site pour Python TutorielsLe programme tentera de trouver la position de la sous-chaîne « Tutorials » à l'aide des fonctions `find()` et `rfind()`. La sous-chaîne « Tutorials » apparaît deux fois dans la chaîne.

Voici un exemple où find() et rfind() sont utilisés.

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Sortie :

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

Le résultat montre que find() donne l'index de la toute première sous-chaîne Tutorials qu'elle trouve, tandis que rfind() donne le dernier index de la sous-chaîne Tutorials.

Python index de chaîne()

Le Python La fonction `index()` renvoie la position d'une sous-chaîne donnée, tout comme `find()`. La seule différence est que `index()` lève une exception si la sous-chaîne est absente de la chaîne, tandis que `find()` renvoie -1.

Voici un exemple fonctionnel qui montre le comportement de index() et find().

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Sortie :

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

On obtient la même position avec `find()` et `index()`. Prenons l'exemple d'une sous-chaîne absente de la chaîne.

mystring = "Meet Guru99 Tutorials Site.Meilleur site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Sortie :

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Dans l'exemple ci-dessus, nous cherchons la position de la sous-chaîne « test ». Cette sous-chaîne n'étant pas présente dans la chaîne donnée, la fonction `find()` renvoie la position -1, tandis que la fonction `index()` génère une erreur, comme indiqué précédemment.

Pour trouver l'occurrence totale d'une sous-chaîne

Pour trouver le nombre total d'occurrences d'une sous-chaîne dans la chaîne donnée, nous utiliserons la fonction find(). PythonNous allons parcourir la chaîne de caractères à l'aide d'une boucle for, de 0 jusqu'à la fin de la chaîne, en utilisant le paramètre startIndex pour find().

Les variables startIndex et count seront initialisées à 0. À l'intérieur de la boucle for, nous vérifierons si la sous-chaîne est présente dans la chaîne donnée en utilisant find() avec startIndex égal à 0.

La valeur renvoyée par find(), si elle n'est pas -1, mettra à jour startIndex à l'index où la chaîne est trouvée et incrémentera également la valeur de count.

Voici l'exemple de travail :

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Sortie :

The total count of substring test is:  6

" En savoir plus sur Python Séparation de chaîne()

FAQ

Oui. La fonction `find()` recherche exactement la sous-chaîne ; ainsi, « Hello ».find("h") renvoie -1 tandis que « Hello ».find("H") renvoie 0. Convertissez d'abord la chaîne avec `lower()` ou `upper()` si vous avez besoin d'une recherche insensible à la casse.

L'opérateur `in` renvoie simplement `True` ou `False` pour indiquer si une sous-chaîne existe. La fonction `find()` va plus loin et renvoie l'indice exact de la première occurrence, ou -1 si la sous-chaîne est absente.

Oui. La fonction find() accepte des indices de début et de fin négatifs, qui comptent à partir de la fin de la chaîne. Par exemple, «Guru99”.find(“9”, -2) recherche uniquement les deux derniers caractères et renvoie leur position.

La méthode `str.find()` recherche une correspondance à la fois. Pour trouver toutes les correspondances en un seul appel, utilisez le module `re` : `re.findall()` renvoie toutes les sous-chaînes correspondantes, et `re.finditer()` renvoie des objets `match` avec chaque position de départ.

La méthode `find()` ne fonctionne qu'avec des chaînes de caractères ; son appel sur une liste lève donc une exception `AttributeError`. Pour localiser un élément dans une liste ou un tuple, utilisez plutôt la méthode `index()`, qui renvoie la position de la première occurrence.

Oui. Pour une simple recherche de sous-chaîne, la fonction `find()` est implémentée en C et s'exécute plus rapidement que la compilation d'une expression régulière. N'utilisez le module `re` que lorsque vous avez besoin de motifs, de caractères génériques ou de correspondances multiples.

En apprentissage automatique et en traitement automatique du langage naturel (TALN), la fonction `find()` repère les mots-clés, les étiquettes ou les délimiteurs tout en nettoyant et en tokenisant le texte. Détecter la présence d'une sous-chaîne, ou sa position, facilite la création de caractéristiques et l'analyse des entrées du modèle.

Oui. GitHub Copilot complète automatiquement les appels à `find()`, `rfind()` et `index()` à partir d'un court commentaire décrivant votre objectif. Les outils d'IA Agentic vont plus loin : ils écrivent la logique de recherche, ajoutent les arguments de début et de fin et exécutent vos tests.

Résumez cet article avec :