¿Cómo modifico un solo carácter en una cadena, en Python? Algo como:¿Cómo modifico un solo carácter en una cadena, en Python?
a = "hello"
a[2] = "m"
'str' objeto no admite la asignación de elementos.
¿Cómo modifico un solo carácter en una cadena, en Python? Algo como:¿Cómo modifico un solo carácter en una cadena, en Python?
a = "hello"
a[2] = "m"
'str' objeto no admite la asignación de elementos.
Las cadenas son inmutables en Python. Se puede utilizar una lista de caracteres en su lugar:
a = list("hello")
Cuando desea mostrar el resultado usar ''.join(a)
:
a[2] = 'm'
print ''.join(a)
Pruebe la construcción de una lista de ella. Cuando pasas un iterable en un constructor de lista, será turn it into a list (esto es un poco de simplificación, pero por lo general funciona).
a = list("hello")
a[2] = m
A continuación, puede unirse a una copia de seguridad con ''.join(a)
.
Excelente respuesta. – JoshD
En python, la cadena es inmutable. Si desea cambiar un carácter único, que tendrá que utilizar slicing:
a = "hello"
a = a[:2] + "m" + a[3:]
Supongo que esto costaría más memoria si es una cadena realmente grande ya que tienes que unir otras tres cuerdas para formar una nueva cuerda, ¿no? – Shane
¡Oh, sí! Si necesita hacer un montón de este tipo de manipulaciones, es mejor usar una lista de caracteres. A menos que ya tenga una cadena y quiera cambiar un carácter. Incluso entonces, probablemente sea más rápido crear y modificar una lista. – JoshD
@Shane: Consulte la respuesta de @ detly a continuación para obtener un ejemplo simple. –
Es porque las cadenas en Python son inmutables.
posible duplicado de [¿Cambiar un carácter en una cadena en Python?] (Http://stackoverflow.com/questions/1228299/change-one-character-in-a-string-in-python) – Wolf