Ich möchte einige Zeichen aus einer Zeichenfolge lesen und in eine andere Zeichenfolge einfügen (wie wir es in C tun).
Mein Code ist also wie unten
import string
import re
str = "Hello World"
j = 0
srr = ""
for i in str:
srr[j] = i #'str' object does not support item assignment
j = j + 1
print (srr)
In C kann der Code sein
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Wie kann ich dasselbe in Python implementieren?
str
als Variable verwenden, können Sie keine Zeichenfolgenkonvertierungen mitstr(var_that_is_not_a_string)
oder Typvergleiche wie ztype(var_with_unknown_type) == str
.Antworten:
In Python sind Zeichenfolgen unveränderlich, sodass Sie ihre Zeichen nicht direkt ändern können.
Sie können jedoch Folgendes tun:
Der Grund dafür ist, dass es eine Abkürzung für:
Das Obige erstellt mit jeder Iteration eine neue Zeichenfolge und speichert den Verweis auf diese neue Zeichenfolge in
srr
.quelle
print " ".join(reversed("Hello world".split())).capitalize()
Die anderen Antworten sind richtig, aber Sie können natürlich Folgendes tun:
wenn du wirklich willst.
quelle
Python-Strings sind unveränderlich, sodass das, was Sie in C versuchen, in Python einfach unmöglich ist. Sie müssen eine neue Zeichenfolge erstellen.
Verwenden Sie dann ein String-Slice:
quelle
Wie bereits erwähnt, sind Zeichenfolgen in Python unveränderlich (Sie können sie nicht direkt ändern).
Was Sie versuchen zu tun, kann auf viele Arten getan werden:
quelle
Ein anderer Ansatz, wenn Sie einen bestimmten Charakter gegen einen anderen Charakter austauschen möchten:
quelle
Wie wäre es mit dieser Lösung:
str = "Hallo Welt" (wie im Problem angegeben) srr = str + ""
quelle
Hallo, Sie sollten die String-Split-Methode ausprobieren:
quelle