Este código simple que simplemente intenta reemplazar el punto y coma (en las posiciones especificadas por i) por dos puntos no funciona:
for i in range(0,len(line)):
if (line[i]==";" and i in rightindexarray):
line[i]=":"
Da el error
line[i]=":"
TypeError: 'str' object does not support item assignment
¿Cómo puedo solucionar esto para reemplazar el punto y coma por dos puntos? El uso de reemplazar no funciona ya que esa función no toma índice; puede haber algunos puntos y comas que no quiero reemplazar.
Ejemplo
En la cadena podría tener cualquier número de punto y coma, por ejemplo, "¡Hei der!; Hola;!;"
Sé cuáles quiero reemplazar (tengo su índice en la cadena). El uso de reemplazar no funciona porque no puedo usar un índice con él.
str.replace()
BIF?str.find()
lugar para encontrar la posición del punto y coma, luego use el corte para extraer la subcadena.Respuestas:
Las cadenas en Python son inmutables, por lo que no puede tratarlas como una lista y asignarlas a índices.
Utilice en su
.replace()
lugar:Si necesita reemplazar solo ciertos puntos y comas, deberá ser más específico. Puede usar el corte para aislar la sección de la cadena para reemplazar en:
Eso reemplazará todos los puntos y coma en los primeros 10 caracteres de la cadena.
fuente
Puede hacer lo siguiente, para reemplazar cualquier carácter con un carácter respectivo en un índice dado, si no desea utilizar
.replace()
fuente
Convierta la cadena en una lista; entonces puedes cambiar los personajes individualmente. Entonces puedes volver a ponerlo junto con
.join
:fuente
Si desea reemplazar un solo punto y coma:
Sin embargo, no lo he probado.
fuente
line.replace(src,dst)
no.line[:10].replace(src,dst) + line[10:]
lo hace, pero con mucha menos severidad. Supongamosline = ';'*12
. Su solución construirá una nueva cuerda 12 veces. La solución aceptada lo hará una vez.Esto debería cubrir un caso un poco más general, pero debería poder personalizarlo para su propósito
Espero que esto ayude
fuente
No se puede simplemente asignar valor a un carácter en la cadena. Utilice este método para reemplazar el valor de un carácter en particular:
Salida: In * ia
Además, si desea reemplazar, diga * para todas las apariciones del primer carácter excepto el primer carácter, por ejemplo. cadena = balbuceo salida = ba ** le
Código:
fuente
Si está reemplazando por un valor de índice especificado en la variable 'n', intente lo siguiente:
fuente
Qué tal esto:
fuente
Para usar el método .replace () de manera efectiva en una cadena sin crear una lista separada, por ejemplo, mire la lista de nombre de usuario que contiene una cadena con un espacio en blanco, queremos reemplazar el espacio en blanco con un guión bajo en cada una de las cadenas de nombre de usuario.
para reemplazar los espacios en blanco en cada nombre de usuario, considere usar la función range en Python.
fuente
Para reemplazar un carácter en un índice específico, la función es la siguiente:
donde s es una cadena, n es índice y c es un carácter.
fuente
Escribí este método para reemplazar caracteres o reemplazar cadenas en una instancia específica. las instancias comienzan en 0 (esto se puede cambiar fácilmente a 1 si cambia el argumento inst opcional a 1 y la variable test_instance a 1.
fuente
Puedes hacerlo:
fuente
nombres = ["Joey Tribbiani", "Monica Geller", "Chandler Bing", "Phoebe Buffay"]
nombres de usuario = []
o, p Joey_Tribbiani Monica_Geller Chandler_Bing Phoebe_Buffay
fuente