Programa de Python para obtener todas las combinaciones únicas de dos Listas

La combinación es una técnica matemática que calcula el número de arreglos posibles en una colección de elementos o lista. En combinación, el orden de selección no importa. La combinación única de dos listas en Python se puede formar emparejando cada elemento de la primera lista con los elementos de la segunda lista. 

Ejemplo:

List_1 = ["a","b"]
List_2 = [1,2]
Unique_combination = [[('a',1),('b',2)],[('a',2),('b',1)]] 

Método 1: usar la permutación() del paquete itertools y la función zip() .

Acercarse :

  • Importe el paquete itertools e inicialice list_1 y list_2.
  • Cree una lista vacía de ‘combinaciones_únicas’ para almacenar las combinaciones resultantes así obtenidas.
  • Llame a itertools.permutations() que devolverá permutaciones de list_1 con una longitud de list_2. Generalmente, se toma la longitud de la lista más corta y, si ambas listas son iguales, se usa cualquiera.
  • Se usa el bucle for y se llama a la función zip() para emparejar cada permutación y elemento de lista más corto en la combinación.
  • Luego, cada combinación se convierte en una lista y se agrega a la lista de combinación.

A continuación se muestra la implementación.

Python3

# python program to demonstrate
# unique combination of two lists
# using zip() and permutation of itertools
 
# import itertools package
import itertools
from itertools import permutations
 
# initialize lists
list_1 = ["a", "b", "c","d"]
list_2 = [1,4,9]
 
# create empty list to store the
# combinations
unique_combinations = []
 
# Getting all permutations of list_1
# with length of list_2
permut = itertools.permutations(list_1, len(list_2))
 
# zip() is called to pair each permutation
# and shorter list element into combination
for comb in permut:
    zipped = zip(comb, list_2)
    unique_combinations.append(list(zipped))
 
# printing unique_combination list
print(unique_combinations)

Producción :

[[(‘a’, 1), (‘b’, 4), (‘c’, 9)], [(‘a’, 1), (‘b’, 4), (‘d’, 9 )], [(‘a’, 1), (‘c’, 4), (‘b’, 9)], [(‘a’, 1), (‘c’, 4), (‘d’ , 9)], [(‘a’, 1), (‘d’, 4), (‘b’, 9)], [(‘a’, 1), (‘d’, 4), (‘ c’, 9)], [(‘b’, 1), (‘a’, 4), (‘c’, 9)], [(‘b’, 1), (‘a’, 4), (‘d’, 9)], [(‘b’, 1), (‘c’, 4), (‘a’, 9)], [(‘b’, 1), (‘c’, 4 ), (‘d’, 9)], [(‘b’, 1), (‘d’, 4), (‘a’, 9)], [(‘b’, 1), (‘d’ , 4), (‘c’, 9)], [(‘c’, 1), (‘a’, 4), (‘b’, 9)], [(‘c’, 1), (‘ a’, 4), (‘d’, 9)], [(‘c’, 1), (‘b’, 4), (‘a’, 9)], [(‘c’, 1), (‘b’, 4), (‘d’, 9)], [(‘c’, 1), (‘d’, 4), (‘a’, 9)], [(‘c’, 1 ), (‘d’, 4), (‘b’, 9)], [(‘d’, 1), (‘a’, 4), (‘b’, 9)], [(‘d’ , 1), (‘a’, 4), (‘c’, 9)], [(‘d’, 1), (‘b’, 4), (‘a’, 9)], [(‘ d’, 1), (‘b’, 4), (‘c’, 9)], [(‘d’, 1), (‘c’, 4), (‘a’, 9)], [ (‘d’, 1), (‘c’, 4), (‘b’, 9)]] 
 

Método 2: Usar product() del paquete itertools y la función zip() .

Acercarse :

  • Importe el paquete itertools e inicialice list_1 y list_2.
  • Cree una lista vacía de ‘combinaciones_únicas’ para almacenar las combinaciones resultantes así obtenidas.
  • Se llama a product() para encontrar todas las combinaciones posibles de elementos.
  • Y zip() se usa para emparejar todas estas combinaciones, convirtiendo cada elemento en una lista y agregándolos a la lista de combinación deseada.

A continuación se muestra la implementación.

Python3

# python program to demonstrate
# unique combination of two lists
# using zip() and product() of itertools
 
# import itertools package
import itertools
from itertools import product
 
# initialize lists
list_1 = ["b","c","d"]
list_2 = [1,4,9]
 
# create empty list to store the combinations
unique_combinations = []
 
# Extract Combination Mapping in two lists
# using zip() + product()
unique_combinations = list(list(zip(list_1, element))
                           for element in product(list_2, repeat = len(list_1)))
 
# printing unique_combination list
print(unique_combinations)

Producción :

[[(‘b’, 1), (‘c’, 1), (‘d’, 1)], [(‘b’, 1), (‘c’, 1), (‘d’, 4 )], [(‘b’, 1), (‘c’, 1), (‘d’, 9)], [(‘b’, 1), (‘c’, 4), (‘d’ , 1)], [(‘b’, 1), (‘c’, 4), (‘d’, 4)], [(‘b’, 1), (‘c’, 4), (‘ d’, 9)], [(‘b’, 1), (‘c’, 9), (‘d’, 1)], [(‘b’, 1), (‘c’, 9), (‘d’, 4)], [(‘b’, 1), (‘c’, 9), (‘d’, 9)], [(‘b’, 4), (‘c’, 1 ), (‘d’, 1)], [(‘b’, 4), (‘c’, 1), (‘d’, 4)], [(‘b’, 4), (‘c’ , 1), (‘d’, 9)], [(‘b’, 4), (‘c’, 4), (‘d’, 1)], [(‘b’, 4), (‘ c’, 4), (‘d’, 4)], [(‘b’, 4), (‘c’, 4), (‘d’, 9)], [(‘b’, 4), (‘c’, 9), (‘d’, 1)], [(‘b’, 4), (‘c’, 9), (‘d’, 4)], [(‘b’, 4 ), (‘c’, 9), (‘d’, 9)], [(‘b’, 9), (‘c’, 1), (‘d’, 1)], [(‘b’ , 9), (‘c’, 1), (‘d’, 4)], [(‘b’, 9), (‘c’, 1), (‘d’, 9)], [(‘ b’, 9), (‘c’, 4), (‘d’, 1)], [(‘b’, 9), (‘c’, 4), (‘d’, 4)], [ (‘b’, 9), (‘c’, 4), (‘d’, 9)], [(‘b’, 9), (‘c’, 9), (‘d’, 1)] , [(‘b’, 9), (‘c’, 9), (‘d’, 4)], [(‘b’, 9), (‘c’, 9), (‘d’,9)]] 
 

Publicación traducida automáticamente

Artículo escrito por vanshgaur14866 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *