Lista de elementos comunes

Oswaldo Hernández listas en soft-com.es
Jue Mar 22 19:51:49 CET 2007


Alberto Valverde escribió:
> 
> On Mar 22, 2007, at 7:24 PM, Alberto Valverde wrote:
> 
>>
>> On Mar 22, 2007, at 7:16 PM, Oswaldo Hernández wrote:
>>
>>> Hola a todos,
>>>
>>> Me gustaria saber si hay alguna forma elegante de resolver esto:
>>>
>>> Una lista con un numero indeterminado de tuplas:
>>> lista = [ (1,2,3), (1,3,4,5), (3, 1) ]
>>>
>>> Necesito crear una nueva lista que contenga los elementos comunes a 
>>> todas las tuplas
>>> En esta caso el resultado deberia ser: [1,3]
>>>
>>> Lo unico que se me ocurre es hacer un bucle e ir comprobando elemento 
>>> por elemento si esta contenido en las demas tuplas.
>>>
>>> ¿Alguna sugerencia?
>>
>> Utilizando los sets (en python <2.4 haz "from sets import Set as set")
>>
>> comunes = set()
>> for tupla in lista:
>>     comunes &= set(tupla)
> 
> Oops, eso está mal, mejor:
> 
> comunes = set(lista[0])
> for tupla in lista[1:]:
>     comunes &= set(tupla)
> 

Perfecto. No se porque me daba a mi que python deberia resolverlo de forma elegante :)

Gracias Alberto.

-- 
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************




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