lista a tupla
Arnau Sanchez
arnau en ehas.org
Vie Ago 17 09:38:07 CEST 2007
> El día 7/02/07, Pau Cervera Badia <cervera en ffn.ub.es> escribió:
>> saben de alguna forma pythonica de convertir una lista,
>>
>> lista = [(1,2),(3,4)]
>>
>> a una tupla
>>
>> tupla = (1, 2, 3, 4) ?
>> Gràcias.
Josu Oyanguren escribió:
> import operator
> reduce(operator.add, lista)
>
> o en una sola línea
>
> reduce(lambda x, y: x+y, lista)
Sólo añadir que lo que pides se conoce como "aplanar", en inglés
"flatten". Si buscas por ese término en google encontrarás varias formas
de hacerlo, entre ellas la de Josu.
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)
Más información sobre la lista de distribución Python-es