Ce code simple qui essaie simplement de remplacer les points-virgules (aux positions spécifiées par i) par des deux-points ne fonctionne pas:
for i in range(0,len(line)):
if (line[i]==";" and i in rightindexarray):
line[i]=":"
Cela donne l'erreur
line[i]=":"
TypeError: 'str' object does not support item assignment
Comment puis-je contourner ce problème pour remplacer les points-virgules par des deux-points? L'utilisation de replace ne fonctionne pas car cette fonction ne prend aucun index - il peut y avoir des points-virgules que je ne veux pas remplacer.
Exemple
Dans la chaîne, je pourrais avoir n'importe quel nombre de points-virgules, par exemple "Hei der!; Hello there;!;"
Je sais lesquels je veux remplacer (j'ai leur index dans la chaîne). L'utilisation de replace ne fonctionne pas car je ne peux pas utiliser d'index avec elle.
str.find() plutôt pour trouver la position du point-virgule, puis utilisez le découpage pour extraire la sous-chaîne.
str.replace()BIF?