107 votes

Trouver la dernière occurrence d'une sous-chaîne dans une chaîne de caractères et la remplacer.

J'ai donc une longue liste de chaînes de caractères dans le même format, et je veux trouver le dernier caractère "." dans chacune d'elles, et le remplacer par ". - ". J'ai essayé d'utiliser rfind, mais je n'arrive pas à l'utiliser correctement pour faire cela.

0voto

Arpan Saini Points 383
a = "A long string with a . in the middle ending with ."

# si vous voulez trouver l'index de la dernière occurrence d'une chaîne de caractères, Dans notre cas, nous #trouverons l'index de la dernière occurrence de avec.

index = a.rfind("with") 

# le résultat sera 44, car l'index commence à partir de 0.

-1voto

Alex L Points 3048

Approche naïve :

a = "A long string with a . in the middle ending with ."
fchar = '.'
rchar = '. -'
a[::-1].replace(fchar, rchar[::-1], 1)[::-1]

Out[2]: 'A long string with a . in the middle ending with . -'

Réponse d'Aditya Sihag par un simple. rfind :

pos = a.rfind('.')
a[:pos] + '. -' + a[pos+1:]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X