Chciałbym odczytać kilka znaków z ciągu i umieścić go w innym ciągu (tak jak w C).
Więc mój kod jest taki jak poniżej
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)
W C kod może być
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
Jak mogę zaimplementować to samo w Pythonie?
str
tutaj zmiennej jako zmiennej, nie będziesz w stanie wykonywać konwersji ciągów zstr(var_that_is_not_a_string)
porównaniami typu lub typami, takimi jaktype(var_with_unknown_type) == str
.Odpowiedzi:
W Pythonie ciągi znaków są niezmienne, więc nie można zmieniać ich znaków w miejscu.
Możesz jednak wykonać następujące czynności:
Powodem, dla którego to działa, jest to, że jest to skrót do:
Powyższe tworzy nowy ciąg z każdą iteracją i przechowuje odniesienie do tego nowego ciągu w
srr
.źródło
print " ".join(reversed("Hello world".split())).capitalize()
Pozostałe odpowiedzi są poprawne, ale możesz oczywiście zrobić coś takiego:
jeśli naprawdę chcesz.
źródło
Ciągi znaków w Pythonie są niezmienne, więc to, co próbujesz zrobić w C, będzie po prostu niemożliwe w Pythonie. Będziesz musiał utworzyć nowy ciąg.
Następnie użyj kawałka sznurka:
źródło
Jak wspomniano aix - ciągi znaków w Pythonie są niezmienne (nie można ich zmieniać w miejscu).
To, co próbujesz zrobić, można zrobić na wiele sposobów:
źródło
Inne podejście, jeśli chcesz zamienić konkretną postać na inną:
źródło
A co z tym rozwiązaniem:
str = "Hello World" (jak podano w problemie) srr = str + ""
źródło
Cześć, powinieneś wypróbować metodę dzielenia ciągów:
źródło