Pourquoi ne puis-je pas remplacer directement les caractères d'une chaîne Python à l'aide de l'affectation d'index ?

Susan Sarandon
Libérer: 2024-11-20 14:41:16
original
323 Les gens l'ont consulté

Why Can't I Directly Replace Characters in a Python String Using Index Assignment?

Impossible de remplacer les caractères dans une chaîne à l'aide de l'affectation d'index

Considérez l'extrait de code suivant, qui tente de remplacer les points-virgules par des deux-points à des positions spécifiées dans une chaîne :

for i in range(0,len(line)):
     if (line[i]==";" and i in rightindexarray):
         line[i]=":"
Copier après la connexion

Cependant, ce code échoue avec une TypeError, indiquant que les objets str ne prennent pas en charge l'affectation d'éléments. En effet, les chaînes en Python sont immuables, ce qui signifie que leur contenu ne peut pas être directement modifié.

Surmonter le problème

Pour remplacer des caractères dans une chaîne, vous pouvez utiliser l'option Méthode replace() :

line = line.replace(';', ':')
Copier après la connexion

Cette méthode remplace toutes les occurrences du caractère spécifié (';') par le nouveau caractère (':').

Remplacement sélectif

Si vous souhaitez uniquement remplacer certains caractères, vous pouvez utiliser le découpage de chaîne pour isoler la section de la chaîne que vous souhaitez modifier :

line = line[:10].replace(';', ':') + line[10:]
Copier après la connexion

Ce code remplacera tous les points-virgules dans les 10 premiers caractères de la chaîne.

Exemple

En utilisant le code ci-dessus, la chaîne "Hei der! ; Bonjour là ;!;", avec rightindexarray contenant le les indices des remplacements souhaités ([3, 13]), se convertiraient en "Hei der! : Bonjour :!;".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal