Quelle est la méthode la plus simple en Python pour remplacer un caractère dans une chaîne de caractères ?
Par exemple :
text = "abcdefg";
text[1] = "Z";
^
Ne modifiez pas les chaînes de caractères.
Travaillez avec elles comme des listes ; ne les transformez en chaînes de caractères qu'en cas de besoin.
>>> s = list("Hello zorld")
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'z', 'o', 'r', 'l', 'd']
>>> s[6] = 'W'
>>> s
['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']
>>> "".join(s)
'Hello World'
Les chaînes Python sont immuables (c’est-à-dire qu’elles ne peuvent pas être modifiées). Il y a [beaucoup][1] de raisons pour cela. Utilisez les listes jusqu'à ce que vous n'ayez plus le choix, puis transformez-les en chaînes de caractères.
[1] : http://effbot.org/pyfaq/why-are-python-strings-immutable.htm
new = text[:1] + 'Z' + text[2:]
Les chaînes Python sont immuables, vous les modifiez en faisant une copie.
La façon la plus simple de faire ce que vous voulez est probablement.
text = "Z" + text[1:]
Le texte [1 :] renvoie la chaîne dans le texte de la position 1 à la fin, les positions comptent à partir de 0 donc '1' ; est le deuxième caractère.
modifier : Vous pouvez utiliser la même technique de découpage de la chaîne de caractères pour n'importe quelle partie de celle-ci
text = text[:1] + "Z" + text[2:]
Ou si la lettre n'apparaît qu'une fois, vous pouvez utiliser la technique de recherche et de remplacement suggérée ci-dessous