Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann ich Zeichen in einer Python-Zeichenfolge nicht direkt mithilfe der Indexzuweisung ersetzen?

Warum kann ich Zeichen in einer Python-Zeichenfolge nicht direkt mithilfe der Indexzuweisung ersetzen?

Susan Sarandon
Susan SarandonOriginal
2024-11-20 14:41:16324Durchsuche

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

Zeichen in der Zeichenfolge können nicht mithilfe der Indexzuweisung ersetzt werden

Beachten Sie den folgenden Codeausschnitt, der versucht, an bestimmten Positionen darin Semikolons durch Doppelpunkte zu ersetzen eine Zeichenfolge:

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

Dieser Code schlägt jedoch mit einem TypeError fehl, was darauf hinweist, dass str Objekte unterstützen keine Elementzuordnung. Dies liegt daran, dass Zeichenfolgen in Python unveränderlich sind, was bedeutet, dass ihr Inhalt nicht direkt geändert werden kann.

Überwindung des Problems

Um Zeichen innerhalb einer Zeichenfolge zu ersetzen, können Sie die verwenden Methode replace():

line = line.replace(';', ':')

Diese Methode ersetzt alle Vorkommen des angegebenen Zeichens (';') durch das neue Zeichen (':').

Selektive Ersetzung

Wenn Sie nur bestimmte Zeichen ersetzen möchten, können Sie String-Slicing verwenden, um den gewünschten Abschnitt der Zeichenfolge zu isolieren ändern:

line = line[:10].replace(';', ':') + line[10:]

Dieser Code ersetzt alle Semikolons in den ersten 10 Zeichen des string.

Beispiel

Mit dem obigen Code wird die Zeichenfolge „Hei der! ; Hello there ;!;“ erstellt, wobei das rightindexarray die Indizes der gewünschten Ersetzungen enthält ([ 3, 13]), würde in „Hei der! : Hallo da :!;“ umgewandelt werden.

Das obige ist der detaillierte Inhalt vonWarum kann ich Zeichen in einer Python-Zeichenfolge nicht direkt mithilfe der Indexzuweisung ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn