Supposons que je doive trouver chaque index de la lettre «e» dans le mot «internet»:
letter = 'e'
word = 'internet'
idx = word.index(letter)
Mais ce code ne donne que le premier index. Comment puis-je trouver les autres?
3 réponses
La réponse de Mark est préférable pour un lettre unique. J'ajoute cela au cas où votre sous-chaîne réelle est plus longue qu'un seul caractère.
Si vous souhaitez utiliser str.index()
, il peut prendre une position start
facultative et raise
un ValueError
si la sous-chaîne souhaitée n'est pas trouvée:
>>> letter = 'e'
>>> word = 'internet'
>>> last_index = -1
>>> while True:
... try:
... last_index = word.index(letter, last_index + 1)
... print last_index
... except ValueError:
... break
...
3
6
Essayez d'utiliser énumération dans un compréhension des listes:
[index for (index, letter) in enumerate(word) if letter == 'e']
Essaye ça:
word = 'internet'
letter = 'e'
[i for i in xrange(len(word)) if word[i] == letter]
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.