Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/10/2015, 05:03
Koan
 
Fecha de Ingreso: diciembre-2009
Ubicación: Spain
Mensajes: 180
Antigüedad: 14 años, 11 meses
Puntos: 9
Respuesta: Operaciones con funciones all y any

Al final he podido crear un lista por comprension. Aunque claro, pasa de los 80 caracteres y no esta muy bien visto en Python. Aparte, creo que a veces, este tipo de listas son menos legibles.

Como no puedo meter ni el break ni el else en la lista por comprension, he transformado los vectores en conjuntos. Y aplicando el metodo intersection me filtra que no haya coincidencias entre grupos.


Código Python:
Ver original
  1. matriz = ([1,2,3], [4,5,6], [4,5,7], [7,8,9],[1,10,11])

SIN COMPRENSION:

Código Python:
Ver original
  1. for vector in combinations(matriz, 2):
  2.     if set(vector[0]).intersection(set(vector[1])) == set():
  3.         print(vector)

LISTA POR COMPRENSION:

Código Python:
Ver original
  1. sinRepetir = [vector for vector in combinations(matriz,2) if set(vector[0]).intersection(set(vector[1])) == set()]

RESULTADO:

Código Python:
Ver original
  1. ([1, 2, 3], [4, 5, 6])
  2. ([1, 2, 3], [4, 5, 7])
  3. ([1, 2, 3], [7, 8, 9])
  4. ([4, 5, 6], [7, 8, 9])
  5. ([4, 5, 6], [1, 10, 11])
  6. ([4, 5, 7], [1, 10, 11])
  7. ([7, 8, 9], [1, 10, 11])

Última edición por Koan; 17/10/2015 a las 05:42