Iteradores combinatorios en Python

Un iterador es un objeto que se puede recorrer a través de todos sus valores. En pocas palabras, los iteradores son tipos de datos sobre los que se puede hacer un bucle. Los generadores son iteradores, pero como no pueden generar return valores yield , generan resultados cuando se ejecutan, utilizando la función ‘rendimiento’. Los generadores pueden ser recursivos al igual que las funciones. Estos generadores recursivos que se utilizan para simplificar construcciones combinatorias como permutaciones, combinaciones y productos cartesianos se denominan iteradores combinatorios .

En python hay 4 iteradores combinatorios:

  1. Producto()

    Esta herramienta calcula el producto cartesiano de iterables de entrada. Para calcular el producto de un iterable consigo mismo, usamos el repeat argumento de palabra clave opcional para especificar el número de repeticiones. La salida de esta función está tuples ordenada.

    Sintaxis:

    product(iterables*, repeat=1)

    Ejemplos:

    # import the product function from itertools module
    from itertools import product
      
    print("The cartesian product using repeat:")
    print(list(product([1, 2], repeat=2)))
    print()
      
    print("The cartesian product of the containers:")
    print(list(product(['geeks', 'for', 'geeks'], '2')))
    print()
      
    print("The cartesian product of the containers:")
    print(list(product('AB', [3,4])))

    Producción:

    The cartesian product using repeat:
    [(1, 1), (1, 2), (2, 1), (2, 2)]
    
    The cartesian product of the containers:
    [('geeks', '2'), ('for', '2'), ('geeks', '2')]
    
    The cartesian product of the containers:
    [('A', 3), ('A', 4), ('B', 3), ('B', 4)]
    
  2. permutaciones()

    Permutations()como el nombre habla por sí mismo, se utiliza para generar todas las permutaciones posibles de un iterable. Todos los elementos se tratan como únicos en función de su posición y no de sus valores. Esta función toma un iterable y group_size, si el valor de group_size no se especifica o es igual None , entonces el valor de group_size se convierte en la longitud del iterable.

    Sintaxis:

    permutations(iterables*, group_size=None)

    Ejemplo:

    # import the product function from itertools module
    from itertools import permutations
      
    print ("All the permutations of the given list is:"
    print (list(permutations([1, 'geeks'], 2)))
    print()
      
    print ("All the permutations of the given string is:"
    print (list(permutations('AB')))
    print()
      
    print ("All the permutations of the given container is:"
    print(list(permutations(range(3), 2)))

    Producción:

    All the permutations of the given list is:
    [(1, 'geeks'), ('geeks', 1)]
    
    All the permutations of the given string is:
    [('A', 'B'), ('B', 'A')]
    
    All the permutations of the given container is:
    [(0, 1), (0, 2), (1, 0), (1, 2), (2, 0), (2, 1)]
    
  3. Combinaciones():

    Este iterador imprime todas las combinaciones posibles (sin reemplazo) del contenedor pasado en argumentos en el tamaño de grupo especificado en orden.

    Sintaxis:

    combinations(iterables*, group_size)

    Ejemplos:

    # import combinations from itertools module
      
    from itertools import combinations
      
    print ("All the combination of list in sorted order(without replacement) is:"
    print(list(combinations(['A', 2], 2)))
    print()
      
    print ("All the combination of string in sorted order(without replacement) is:")
    print(list(combinations('AB', 2)))
    print()
      
    print ("All the combination of list in sorted order(without replacement) is:")
    print(list(combinations(range(2),1)))

    Producción:

    All the combination of list in sorted order(without replacement) is:
    [('A', 2)]
    
    All the combination of string in sorted order(without replacement) is:
    [('A', 'B')]
    
    All the combination of list in sorted order(without replacement) is:
    [(0,), (1,)]
    
    
  4. Combinaciones_con_reemplazo():

    Esta función devuelve una subsecuencia de longitud n de los elementos del iterable donde n es el argumento que toma la función para determinar la longitud de las subsecuencias generadas por la función. Los elementos individuales pueden repetirse en la función combinaciones_con_reemplazo.

    Sintaxis:

    combinations_with_replacement(iterables*, n=None)

    Ejemplos:

    # import combinations from itertools module
      
    from itertools import combinations_with_replacement
      
    print ("All the combination of string in sorted order(with replacement) is:")
    print(list(combinations_with_replacement("AB", 2)))
    print()
      
    print ("All the combination of list in sorted order(with replacement) is:")
    print(list(combinations_with_replacement([1, 2], 2)))
    print()
      
    print ("All the combination of container in sorted order(with replacement) is:")
    print(list(combinations_with_replacement(range(2), 1)))

    Producción:

    All the combination of string in sorted order(with replacement) is:
    [('A', 'A'), ('A', 'B'), ('B', 'B')]
    
    All the combination of list in sorted order(with replacement) is:
    [(1, 1), (1, 2), (2, 2)]
    
    All the combination of container in sorted order(with replacement) is:
    [(0,), (1,)]
    

Publicación traducida automáticamente

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