Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/07/2015, 10:35
Koan
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 11 meses
Puntos: 9
Respuesta: ¿Como desempaquetar rangos numeros dentro de una tupla o lista?

Cita:
Iniciado por RaKKoS Ver Mensaje
Hola amigo Koan yo lo realize de esta forma tal vez tiene un poco mas de código pero saca el rango desde 1 hasta infinito, mientras final no sea 0

Código Python:
Ver original
  1. final=1
  2. lista=[0]
  3. while final:
  4.     ini=int(input('num '))
  5.     final=int(input('final '))
  6.     lista.extend([x for x in range(ini,final+1)])
  7.     print(lista)
Gracias por el codigo.

Bueno, en cierto modo queria evitar usar mucho codigo. Creia que con un simple range se podia conseguir. Mira, si hacemos esto:

Código Python:
Ver original
  1. numeros = tuple(range(1,10))
  2. >>> numeros
  3. (1, 2, 3, 4, 5, 6, 7, 8, 9)

Da el resultado que quiero. Pero se queda corto. Ya que quiero usar varios range. Y al hacer esto:

Código Python:
Ver original
  1. numeros = tuple((range(1,10), range(5,10)))
  2. >>> numeros
  3. (range(1, 10), range(5, 10))

Pues logicamente devuelve esos range sin desempaquetar.


Posible solucion:

Tras darles vueltas y mas vueltas, he utilizado el desempaquetado de tuplas usando el asterisco. A ver que os parece este codigo:

Código Python:
Ver original
  1. rangos = ((1, 6), (6, 11))
  2.  
  3. lista = []
  4. for x in rangos:    
  5.     lista.extend([i for i in range(*x)]) # asterisco para desempaquetar tupla

>>> lista
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

¿Que tal...?

Última edición por Koan; 09/07/2015 a las 11:20