como formar grupos con los componentes de una lista

Chema Cortes py en ch3m4.org
Mie Ago 27 22:18:37 CEST 2008


El Wednesday 27 August 2008 17:13:58 Jose Caballero escribió:
> Hola Chema,
>
> acabo de probar el segundo ejemplo, y tiene el mismo problema que el
> primero.
> Creo que el problema que Francisco plantea se puede entender mejor si
> escribimos el resultado que se desea obtener de la siguiente forma:
>
> lista2 = [
>                  [['1', '2'],  ['3', '1']],
>                  [['5', '11'],  ['11', '7'],  ['4', '5']],
>                  [['8', '6'], ['8', '9']]
>               ]
>
>
> Tal vez lo que propone Javi (?) sea un buen enfoque.


¡Ah, bueno! Lo había leído muy rápido.

Entiendo, pues, que lo que se quiere sacar son sublistas con todos los pares 
que estén relacionados con el primer par de la sublista, tal que así:


lista2= [ [x]+[y for y in lista if x!=y and any(True for i in x if i in y)]
           for x in lista  ]


Una lista no parece la mejor forma de trabajo. Yo usaría una combinación de 
tuplas y diccionario (tuplas para claves en el diccionario):

lista=( ('1', '2'), ('5', '11'), ('11', '7'), ('8', '6'), ('4', '5'), 
('8', '9'), ('3', '1'))

grafo=dict( (x, [y for y in lista if x!=y and any(True for i in x if i in y)])
              for x in lista )
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.python.org/pipermail/python-es/attachments/20080827/a11f8645/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


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