Python | Todas las posibles permutaciones de N listas

Calcular permutaciones es siempre una tarea necesaria en muchas de las aplicaciones prácticas y un concepto ampliamente utilizado en Matemáticas para lograr soluciones a muchos problemas prácticos. Discutamos ciertas formas en las que uno puede realizar la tarea de obtener todas las permutaciones de N listas.

Método n.º 1: usar la comprensión de listas
La comprensión de listas se puede usar para convertir la tarea del método ingenuo en una sola línea, por lo tanto, más compacta. Este método comprueba los elementos disponibles de cada elemento y forma pares en consecuencia.

# Python3 code to demonstrate 
# to compute all possible permutations
# using list comprehension 
  
# initializing lists
list1 = [1, 3, 4]
list2 = [6, 7, 9]
list3 = [8, 10, 5]
  
# printing lists 
print ("The original lists are : " + str(list1) +
                               " " + str(list2) + 
                               " " + str(list3))
  
# using list comprehension 
# to compute all possible permutations
res = [[i, j, k] for i in list1 
                 for j in list2
                 for k in list3]
  
# printing result
print ("All possible permutations are : " +  str(res))

Producción :

Las listas originales son: [1, 3, 4] [6, 7, 9] [8, 10, 5]
Todas las permutaciones posibles son: [[1, 6, 8], [1, 6, 10], [1 , 6, 5], [1, 7, 8], [1, 7, 10], [1, 7, 5], [1, 9, 8], [1, 9, 10], [1, 9 , 5], [3, 6, 8], [3, 6, 10], [3, 6, 5], [3, 7, 8], [3, 7, 10], [3, 7, 5 ], [3, 9, 8], [3, 9, 10], [3, 9, 5], [4, 6, 8], [4, 6, 10], [4, 6, 5], [4, 7, 8], [4, 7, 10], [4, 7, 5], [4, 9, 8], [4, 9, 10], [4, 9, 5]]

Método n.º 2:itertools.product()
con la función de uso del producto, se puede realizar fácilmente esta tarea de una manera más pythonica y concisa. Este es el método más recomendado para realizar esta tarea de calcular el producto cartesiano.

# Python3 code to demonstrate 
# to compute all possible permutations
# using itertools.product() 
import itertools
  
# initializing list of list 
all_list = [[1, 3, 4], [6, 7, 9], [8, 10, 5] ]
  
# printing lists 
print ("The original lists are : " + str(all_list))
  
# using itertools.product()  
# to compute all possible permutations
res = list(itertools.product(*all_list))
  
# printing result
print ("All possible permutations are : " +  str(res))

Producción :

Las listas originales son: [[1, 3, 4], [6, 7, 9], [8, 10, 5]]
Todas las permutaciones posibles son: [(1, 6, 8), (1, 6, 10) ), (1, 6, 5), (1, 7, 8), (1, 7, 10), (1, 7, 5), (1, 9, 8), (1, 9, 10), (1, 9, 5), (3, 6, 8), (3, 6, 10), (3, 6, 5), (3, 7, 8), (3, 7, 10), (3 , 7, 5), (3, 9, 8), (3, 9, 10), (3, 9, 5), (4, 6, 8), (4, 6, 10), (4, 6 , 5), (4, 7, 8), (4, 7, 10), (4, 7, 5), (4, 9, 8), (4, 9, 10), (4, 9, 5 )]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 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 *