Trouver tous les index d'un caractère dans une chaîne Python
- Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des expressions régulières en Python
-
Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec le mot-clé
rendement
en Python - Trouver tous les index d’un caractère à l’intérieur d’une chaîne avec des compréhensions de liste en 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.
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.
LinkedInArticle connexe - Python String
- Supprimer les virgules de la chaîne en Python
- Comment vérifier qu'une chaîne est vide de manière pythonique
- Convertir une chaîne en nom de variable en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
- Comment extraire des nombres d'une chaîne de caractèresen Python
- Comment convertir une chaîne de caractères en datetime en Python