Foros del Web » Programación para sitios web » 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, 11:01
 
Fecha de Ingreso: agosto-2011
Mensajes: 174
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, 13:38
Avatar de AlvaroG
import fdw.mod.py
 
Fecha de Ingreso: julio-2005
Ubicación: Canelones, Uruguay
Mensajes: 6.911
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 originalCopiar
  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 originalCopiar
  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.
__________________
blog ElCodiguero
  #3 (permalink)  
Antiguo 07/02/2012, 09:17
 
Fecha de Ingreso: agosto-2011
Mensajes: 174
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 originalCopiar
  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 originalCopiar
  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 :)
¿Nuevo en el foro? Regístrate



La zona horaria es GMT -6. Ahora son las 23:46.
SEO by vBSEO 3.3.2