El 05/03/10 09:36, Boris Perez Canedo escribió:
Hola a todos.

Viendo los comentarios relacionados con "Buscar índices de un array (que
cumple condición) de forma eficiente" y el analisis profundo que este
genero, me dio un poco de verguenza respecto a un problema que se me
presento y del cual, incluso antes de leer estos comentarios, sabia que
la solucion que habia propuesto no era eficiente ni mucho menos
"elegante", pero bueno lo de elegante se lo puedo achacar a mi falta de
experiencia con Python o tambien puede ser que la falta de elegancia
genere la ineficiencia.

No pongo mi solucion porque me da tremenda pena!

Mi problema:
Encontrar las diferencias entre los elementos de dos listas de listas
cuyos elementos (listas) comparten entre si un elemento comun en una
posicion dada.
Disculpen el enredo espero entiendan mejor con lo siguiente:

Entrada:
en ste caso el elemento considerado comun se encuentra en la posicion 1

L1 = [ [ 1, 1, 2] , [ 2, 3, 5 ] , [ 3, 2, 8 ] ]

L2 = [ [ 2, 1, 6 ], [ 3, 2, 8 ], [ 1, 3, 5 ], [ 4, 4, 7] ]

Salida:
[ (element1 , element2, diferencia),... ]

la diferencia contiene los indices donde ambos elementos difieren.


[ ( [ 1, 1, 2 ], [ 2, 1, 6 ], [ 0, 2 ] ), ([ 2, 3, 5 ], [ 1, 3, 5 ], [ 0
] ), ( [ ], [ 4, 4, 7 ], [ 0, 1, 2 ] ) ]

Aclarar que en ningun caso, tanto las listas de entrada como la de
salida, tienen obligatoriamente que estar ordenadas, pero si facilita la
solucion o implica una mejora en la eficiencia pueden ser ordenadas.



Gracias de antemano.


Saludos,
Boris.


Echandole un vistazo rápido te puedo aconsejar que pruebes con conjuntos (set), me parece la solución más directa para este caso, aunque quizás no la más eficiente.

Slds. Manuel.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a