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