194 votes

Remplacer les instances d'un caractère dans une chaîne de caractères

Ce code simple qui essaie simplement de remplacer les points-virgules (à des positions i-spécifiées) par des deux-points ne fonctionne pas :

for i in range(0,len(line)):
     if (line[i]==";" and i in rightindexarray):
         line[i]=":"

Il donne l'erreur

line[i]=":"
TypeError: 'str' object does not support item assignment

Comment puis-je contourner ce problème en remplaçant les points-virgules par des deux-points ? L'utilisation de replace ne fonctionne pas car cette fonction ne prend pas d'index - il peut y avoir des points-virgules que je ne veux pas remplacer.

Exemple

Dans la chaîne de caractères, je peux avoir un nombre quelconque de points-virgules, par exemple "Hei der ! ; Hello there ;! ;".

Je sais quels sont ceux que je veux remplacer (j'ai leur index dans la chaîne). L'utilisation de replace ne fonctionne pas car je ne suis pas en mesure d'utiliser un index avec lui.

0voto

Vern Points 1

J'ai essayé d'utiliser ceci à la place comme un 2 en 1

usernames = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]

# write your for loop here
for user in range(0,len(usernames)):
    usernames[user] = usernames[user].lower().replace(' ', '_')

print(usernames)

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