Me gustaría leer algunos caracteres de una cadena y ponerlos en otra cadena (como hacemos en C).
Entonces mi código es el siguiente
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)
En C, el código puede ser
i = j = 0;
while(str[i] != '\0')
{
srr[j++] = str [i++];
}
¿Cómo puedo implementar lo mismo en Python?
str
como una variable aquí, no podrá realizar conversiones de cadenasstr(var_that_is_not_a_string)
o comparaciones de tipos comotype(var_with_unknown_type) == str
.Respuestas:
En Python, las cadenas son inmutables, por lo que no puede cambiar sus caracteres en el lugar.
Sin embargo, puede hacer lo siguiente:
La razón por la que esto funciona es que es un atajo para:
Lo anterior crea una nueva cadena con cada iteración y almacena la referencia a esa nueva cadena en
srr
.fuente
print " ".join(reversed("Hello world".split())).capitalize()
Las otras respuestas son correctas, pero, por supuesto, puede hacer algo como:
Si de verdad quieres.
fuente
Las cadenas de Python son inmutables, por lo que lo que está intentando hacer en C será simplemente imposible en Python. Tendrá que crear una nueva cadena.
Luego usa una rebanada de cuerda:
fuente
Como mencionó aix, las cadenas en Python son inmutables (no puede cambiarlas en su lugar).
Lo que está intentando hacer se puede hacer de muchas formas:
fuente
Otro enfoque si desea intercambiar un personaje específico por otro personaje:
fuente
¿Qué tal esta solución?
str = "Hola mundo" (como se indica en el problema) srr = str + ""
fuente
Hola, deberías probar el método de división de cadenas:
fuente