[Python-es] lista a tupla

Chema Cortes pych3m4 en gmail.com
Vie Ago 17 15:10:18 CEST 2007


El 17/08/07, Arnau Sanchez <arnau en ehas.org> escribió:

> A mi particularmente me gusta trabajar con iteradores (para listas
> pequeñas da igual, para grandes puede suponer un buen ahorro de memoria)
>
> http://docs.python.org/lib/itertools-recipes.html
>
> from itertools import chain
> def flatten(listOfLists):
>      return chain(*listOfLists)
>
> lista = [(1,2), (3,4)]
> lista2 = flatten(lista)
> print lista2
> <itertools.chain object at 0xb7d0ba6c>
> print tuple(lista2)
> (1, 2, 3, 4)

Aunque son algo antiguos, no sé si habrás leído el resto de mensajes.
Para casos como éste no hace falta recurrir a 'itertools':

lista2=(x for y in lista for x in y)


Esta nomenclatura permite, incluso, añadir filtrados simples:

lista3=(x for y in lista for x in y if x<3)



Más información sobre la lista de distribución Python-es