duda sobre listas por comprension o listas autodefinidas o como se llamen

Kike Cabrera kikecalpe en gmail.com
Mie Feb 6 01:43:25 CET 2008


tengo una duda sobre listas por comprension, como se las llama en dive into
python<http://almacen.gulic.org/diveintopython-5.4-es/native_data_types/mapping_lists.html>,
o listas autodefinidas como se las llama en el manual de
guido<http://pyspanishdoc.sourceforge.net/tut/node7.html#SECTION007140000000000000000>
mi gran duda es que no termino de dar con la formula para aprovecharlas en
lo que necesito, ¿conoceis algun sitio donde esten mejor documentadas?
un ejemplo de lo que necesito:
>>> lista = ['1','x']
>>> combinacion = [(a,b,c) for a in lista for b in lista for c in lista]
>>> combinacion
[('1', '1', '1'), ('1', '1', 'x'), ('1', 'x', '1'), ('1', 'x', 'x'), ('x',
'1', '1'), ('x', '1', 'x'), ('x', 'x', '1'), ('x', 'x', 'x')]
lo que ahora necesito y no se como hacer (he supuesto que con este tipo de
listas se tiene que poder):
combinacion1 == [('1','1','1'),('x','x','x')]
combinacion2 == [('1','1','x'),('x','x','1')]
combinacion3 == [('1','x','1'),('x','1','x')]
combinacion4 == [('1','x','x'),('x','1','1')]

esta combinacion solo tiene ocho tuplas, pero podria haber combinaciones de
muchas mas tuplas, y podria haber tuplas con mas de tres elementos, eso si,
en una combinacion dada todas las tuplas tienen la misma cantidad de
elementos.
el objetivo es conseguir agrupar las tuplas de forma que todas las del mismo
grupo se diferencian entre si en al menos tres elementos, el numero de
grupos esta determinado.
para conseguir el proposito tengo una funcion que compara dos tuplas y me
devuelve el numero de diferencias, luego intenté otra funcion para agrupar
las tuplas, pero no resultaba, y apaño tras apaño acababa asustando y
tampoco cumplia.
estoy convencido de que se tiene que poder hacer lo que necesito con listas
autodefinidas de forma sencilla.
¿algun consejo?

¡¡gracias por adelantado!!
------------ 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