Iterando cada carácter en una cadena usando Python
¿ Cómo puedo iterar sobre una cadena en Python (obtener cada carácter de la cadena, uno a la vez, cada vez a través de un bucle)?
Como señaló Johannes,
for c in "string":
#do something with c
Puedes iterar prácticamente cualquier cosa en Python usando la for loop
construcción,
por ejemplo, open("file.txt")
devuelve un objeto de archivo (y abre el archivo), iterando sobre él itera sobre líneas en ese archivo
with open(filename) as f:
for line in f:
# do something with line
Si eso parece magia, bueno, más o menos lo es, pero la idea detrás de esto es realmente simple.
Existe un protocolo iterador simple que se puede aplicar a cualquier tipo de objeto para que el for
bucle funcione en él.
Simplemente implemente un iterador que defina un next()
método e implemente un __iter__
método en una clase para que sea iterable. ( __iter__
por supuesto, debería devolver un objeto iterador, es decir, un objeto que define next()
)
Ver documentación oficial
Si necesita acceso al índice mientras itera a través de la cadena, use enumerate()
:
>>> for i, c in enumerate('test'):
... print i, c
...
0 t
1 e
2 s
3 t
Aún más fácil:
for c in "test":
print c