Jak zmodyfikować pojedynczy znak w ciągu znaków, w języku Python? Coś jak:Jak zmodyfikować pojedynczy znak w ciągu, w Pythonie?
a = "hello"
a[2] = "m"
Obiekt "str" nie obsługuje przypisania przedmiotu.
Jak zmodyfikować pojedynczy znak w ciągu znaków, w języku Python? Coś jak:Jak zmodyfikować pojedynczy znak w ciągu, w Pythonie?
a = "hello"
a[2] = "m"
Obiekt "str" nie obsługuje przypisania przedmiotu.
Ciągi są niezmienne w języku Python. Można użyć listę znaków zamiast:
a = list("hello")
Gdy chcesz wyświetlić wynik użyć ''.join(a)
:
a[2] = 'm'
print ''.join(a)
Spróbuj konstruowaniu listy od niego. Kiedy przejdziesz do konstruktora listy, będzie to turn it into a list (to trochę uproszczenie, ale zwykle działa).
a = list("hello")
a[2] = m
Możesz następnie dołączyć do niego ponownie za pomocą ''.join(a)
.
Doskonała odpowiedź. – JoshD
W pythonie ciąg jest niezmienny. Jeśli chcesz zmienić jeden znak, będziesz musiał użyć slicing:
a = "hello"
a = a[:2] + "m" + a[3:]
Przypuszczam, że kosztowałoby to więcej pamięci, jeśli jest to naprawdę duży ciąg, ponieważ musisz połączyć trzy inne ciągi w celu utworzenia nowego ciągu znaków, prawda? – Shane
Och, tak! Jeśli chcesz wykonać cały szereg tego typu manipulacji, najlepiej jest użyć listy znaków. Chyba, że masz już ciąg i po prostu chcesz zmienić jedną postać. Nawet wtedy prawdopodobnie tworzenie i modyfikowanie listy jest szybsze. – JoshD
@Shane: Poniżej znajduje się odpowiedź na temat @ detly. –
to dlatego ciągi w Pythonie są niezmienne.
możliwy duplikat [Zmiana jednego znaku w ciągu znaków w Pythonie?] (Http://stackoverflow.com/questions/1228299/change-one-character-in-a-string-in-python) – Wolf