Python – Itertools.Product()

En términos matemáticos, el producto cartesiano de dos conjuntos se define como el conjunto de todos los pares ordenados (a, b) donde a pertenece a A y b pertenece a B. Considere el siguiente ejemplo para una mejor comprensión.
Ejemplos:

Entrada: arr1 = [1, 2, 3] 
arr2 = [5, 6, 7] 
Salida: [(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6), (3, 7)] 
Entrada: arr1 = [10, 12] 
arr2 = [8, 9, 10] 
Salida: [(10 , 8), (10, 9), (10, 10), (12, 8), (12, 9), (12, 10)] 
 

La solución anterior se puede hacer mediante un bucle, pero usaremos una biblioteca especial de Python itertools.product() para encontrar el producto cartesiano. Repasemos los casos de uso y funcionamiento de esta biblioteca de Python.
 

¿Qué son las itertools en Python?

Python Itertools es una biblioteca en Python que consta de varios métodos que se utilizan en varios iteradores para calcular una solución rápida y eficiente en el código.
 

itertools.product() pertenece a la categoría denominada iteradores combinatorios de la biblioteca itertools de Python.

Nota: Para obtener más información, consulte Python Itertools
 

¿Qué hace itertools.product()?

itertools.product() se usa para encontrar el producto cartesiano del iterador dado, la salida está ordenada lexicográficamente. El itertools.product() se puede usar de dos maneras diferentes:

  • itertools.product(*iterables, repeat=1):
    Devuelve el producto cartesiano del iterable proporcionado consigo mismo por el número de veces especificado por la palabra clave opcional “repetir”. Por ejemplo, producto(arr, repetir=3) significa lo mismo que producto(arr, arr, arr).
  • itertools.product(*iterables):
    Devuelve el producto cartesiano de todos los iterables proporcionados como argumento. Por ejemplo, producto(arr1, arr2, arr3).

Ejemplo:

Python3

from itertools import product
 
def cartesian_product(arr1, arr2):
 
    # return the list of all the computed tuple
    # using the product() method
    return list(product(arr1, arr2))
   
# Driver Function
if __name__ == "__main__":
    arr1 = [1, 2, 3]
    arr2 = [5, 6, 7]
    print(cartesian_product(arr1, arr2))

Producción:

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

Publicación traducida automáticamente

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