Iterando cada carácter en una cadena usando Python

Resuelto Paradius asked hace 15 años • 9 respuestas

¿ 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)?

Paradius avatar Feb 12 '09 02:02 Paradius
Aceptado

Como señaló Johannes,

for c in "string":
    #do something with c

Puedes iterar prácticamente cualquier cosa en Python usando la for loopconstrucció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 forbucle 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

hasen avatar Feb 11 '2009 19:02 hasen

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
moinudin avatar Dec 28 '2010 16:12 moinudin

Aún más fácil:

for c in "test":
    print c
Johannes Weiss avatar Feb 11 '2009 19:02 Johannes Weiss