Trouver tous les index d'un caractère dans une chaîne Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des expressions régulières en Python
  2. Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec le mot-clé rendement en Python
  3. Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des compréhensions de liste en Python
Trouver tous les index d'un caractère dans une chaîne Python

Ce tutoriel discutera des méthodes pour obtenir tous les index d’un caractère à l’intérieur d’une chaîne en Python.

Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des expressions régulières en Python

Nous pouvons utiliser la fonction finditer() à l’intérieur du module re de Python pour notre problème spécifique. La fonction finditer() prend le motif et la chaîne comme paramètres d’entrée. Il lit la chaîne de gauche à droite et renvoie tous les index où le motif se produit. Nous pouvons utiliser cette fonction avec des compréhensions de liste pour stocker le résultat dans une liste en Python. L’extrait de code suivant nous montre comment trouver tous les index d’un caractère dans une chaîne avec des expressions régulières.

import re

string = "This is a string"
char = "i"
indices = [i.start() for i in re.finditer(char, string)]
print(indices)

Production :

[2, 5, 13]

Nous avons utilisé la fonction re.finditer() pour parcourir chaque caractère à l’intérieur de la chaîne et trouver tous les caractères correspondant à char. Nous avons renvoyé l’index i.start() de tous les caractères correspondant à char sous la forme d’une liste et les avons stockés dans indices. Au final, nous avons affiché tous les éléments des indices.

Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec le mot-clé rendement en Python

Nous pouvons également utiliser le mot-clé yield dans une fonction pour résoudre notre problème spécifique. Le mot-clé yield est utilisé pour renvoyer plusieurs valeurs d’une fonction sans détruire l’état des variables locales de cette fonction. Lorsque la fonction est à nouveau appelée, l’exécution commence à partir de l’instruction yield précédente. Nous pouvons utiliser ce mot-clé pour renvoyer toutes les instances d’un caractère à l’intérieur d’une chaîne. L’exemple de code suivant nous montre comment trouver tous les index d’un caractère à l’intérieur d’une chaîne avec le mot clé yield.

def find(string, char):
    for i, c in enumerate(string):
        if c == char:
            yield i


string = "This is a string"
char = "i"
indices = list(find(string, char))
print(indices)

Production :

[2, 5, 13]

Nous avons défini la fonction find(string, char) qui parcourt chaque caractère à l’intérieur de la string et renvoie l’index i si le caractère correspond à char. Lors de l’appel de la fonction find(), nous avons stocké toutes les valeurs renvoyées dans une liste et affiché tous les éléments de la liste.

Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des compréhensions de liste en Python

Nous pouvons également utiliser des compréhensions de liste pour résoudre notre problème. Les compréhensions de liste sont utilisées pour créer de nouvelles listes basées sur des listes déjà existantes. Nous pouvons utiliser des compréhensions de liste pour parcourir chaque caractère à l’intérieur de la variable de chaîne et renvoyer l’index si le caractère correspond au caractère souhaité. Les compréhensions de liste renvoient des valeurs sous forme de listes. Nous pouvons stocker ces valeurs d’index dans une liste et afficher les résultats. L’extrait de code suivant nous montre comment trouver tous les index d’un caractère dans une chaîne avec des listes de compréhension.

string = "This is a string"
char = "i"
indices = [i for i, c in enumerate(string) if c == char]
print(indices)

Production :

[2, 5, 13]

Nous avons utilisé des compréhensions de liste pour parcourir chaque caractère c à l’intérieur de la variable string et avons renvoyé son indice i si le caractère c est égal au caractère souhaité char. C’est le moyen le plus simple et le plus facile de trouver tous les index d’un caractère à l’intérieur d’une chaîne.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python String