Foros del Web » Programando para Internet » Python »

for ( + de un indice) in range (,,) ?

Estas en el tema de for ( + de un indice) in range (,,) ? en el foro de Python en Foros del Web. Buenas tardes me gustaría saber si se puede esto : for (a e i o u) in range (x,x,x) Es decir con más de un ...
  #1 (permalink)  
Antiguo 05/02/2012, 12:01
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 12 años, 7 meses
Puntos: 3
for ( + de un indice) in range (,,) ?

Buenas tardes me gustaría saber si se puede esto :

for (a e i o u) in range (x,x,x)

Es decir con más de un indice :)
  #2 (permalink)  
Antiguo 05/02/2012, 14:38
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: for ( + de un indice) in range (,,) ?

¿Qué es lo que querés obtener en cada índice?

for itera sobre cada elemento de una secuencia, si ese elemento es una lista o tupla se puede hacer:

Código Python:
Ver original
  1. for a, b, c in ((1, 2, 3), (4, 5, 6), (7, 8, 9)):
  2.     print a, b, c

En el caso de range() esto no se puede hacer porque range() genera una lista de enteros, y cada entero no puede desempaquetarse en 3 componentes.

si lo que querés es iterar tomando bloques de elementos, una forma que se me ocurre rápidamente es

Código Python:
Ver original
  1. lista = .... # la lista
  2. n = 3 # el tamaño del bloque de elementos a considerar
  3.  
  4. for i in range(0, len(lista), 3):
  5.     a, b, c = lista[i:i+3]


Explica mejor cuál es la necesidad de hacer esto, quizás pueda surgir un método mejor.


saludos.
  #3 (permalink)  
Antiguo 07/02/2012, 10:17
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 327
Antigüedad: 12 años, 7 meses
Puntos: 3
Respuesta: for ( + de un indice) in range (,,) ?

Cita:
Iniciado por AlvaroG Ver Mensaje
¿Qué es lo que querés obtener en cada índice?

for itera sobre cada elemento de una secuencia, si ese elemento es una lista o tupla se puede hacer:

Código Python:
Ver original
  1. for a, b, c in ((1, 2, 3), (4, 5, 6), (7, 8, 9)):
  2.     print a, b, c

En el caso de range() esto no se puede hacer porque range() genera una lista de enteros, y cada entero no puede desempaquetarse en 3 componentes.

si lo que querés es iterar tomando bloques de elementos, una forma que se me ocurre rápidamente es

Código Python:
Ver original
  1. lista = .... # la lista
  2. n = 3 # el tamaño del bloque de elementos a considerar
  3.  
  4. for i in range(0, len(lista), 3):
  5.     a, b, c = lista[i:i+3]


Explica mejor cuál es la necesidad de hacer esto, quizás pueda surgir un método mejor.


saludos.
Gracias :)

Etiquetas: indice, range
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:46.