módulo itertools.combinations() en Python para imprimir todas las combinaciones posibles

Dada una array de tamaño n, genere e imprima todas las combinaciones posibles de r elementos en la array.

Ejemplos:

Input : arr[] = [1, 2, 3, 4],  
            r = 2
Output : [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

Este problema tiene una solución recursiva existente, consulte Imprima todas las combinaciones posibles de elementos r en una array dada de tamaño n enlace. Resolveremos este problema en python usando el módulo itertools.combinations() .

¿Qué hace itertools.combinations()?

Devuelve r subsecuencias de elementos de la entrada iterable. Las combinaciones se emiten en orden de clasificación lexicográfico. Entonces, si la entrada iterable está ordenada, las tuplas de combinación se producirán en orden ordenado.

  • itertools.combinations(iterable, r) :
    devuelve tuplas de longitud r en orden ordenado sin elementos repetidos. Por ejemplo, combinaciones(‘ABCD’, 2) ==> [AB, AC, AD, BC, BD, CD].
  • itertools.combinations_with_replacement(iterable, r) :
    devuelve tuplas de longitud r en orden ordenado con elementos repetidos. Por ejemplo, combinaciones_con_reemplazo(‘ABCD’, 2) ==> [AA, AB, AC, AD, BB, BC, BD, CC, CD, DD].
  • # Function which returns subset or r length from n
    from itertools import combinations
      
    def rSubset(arr, r):
      
        # return list of all subsets of length r
        # to deal with duplicate subsets use 
        # set(list(combinations(arr, r)))
        return list(combinations(arr, r))
      
    # Driver Function
    if __name__ == "__main__":
        arr = [1, 2, 3, 4]
        r = 2
        print (rSubset(arr, r))

    Producción:

[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

Este artículo es una contribución de Shashank Mishra (Gullu) . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

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