Combinaciones de una lista en Python

Samyak Jain 30 enero 2023
  1. Utilice la función itertools.combinations() para encontrar las combinaciones de una lista en Python
  2. Utilice la función itertools.combinations_with_replacement() para encontrar las combinaciones de una lista en Python
  3. Cree una función powerset() definida por el usuario para encontrar las combinaciones de una lista en Python
Combinaciones de una lista en Python

Una combinación es una técnica que determina el número de arrays posibles en una colección de elementos. En una combinación de elementos, los elementos se seleccionan en un orden arbitrario.

En este tutorial, encontraremos las combinaciones totales de los elementos de una lista en Python.

Utilice la función itertools.combinations() para encontrar las combinaciones de una lista en Python

La función combinations(list_name, x) del módulo itertools toma el nombre de la lista y un número ‘x’ como parámetros y devuelve una lista de tuplas cada una de longitud ‘x’ que contiene todas las combinaciones posibles de un elemento en la lista con los otros elementos.

Por ejemplo,

from itertools import combinations

A = [10, 5, "Hi"]
temp = combinations(A, 2)
for i in list(temp):
    print(i)

Producción :

(10, 5)
(10, 'Hi')
(5, 'Hi')

Una lista ordenada generará las tuplas de combinación en orden ordenado. Una combinación de un elemento en la lista consigo mismo no es posible usando la función combinations().

Utilice la función itertools.combinations_with_replacement() para encontrar las combinaciones de una lista en Python

La función combinations_with_replacement(list_name, x) del módulo itertools toma el nombre de la lista y un número ‘x’ como parámetros y devuelve una lista de tuplas cada una de longitud ‘x’ que contiene todas las combinaciones posibles de los elementos de la lista. Una combinación de un elemento de la lista consigo mismo es posible utilizando esta función.

Por ejemplo,

from itertools import combinations_with_replacement

A = [1, 5, "Hi"]
temp = combinations_with_replacement(A, 2)
for i in list(temp):
    print(i)

Producción :

(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')

Cree una función powerset() definida por el usuario para encontrar las combinaciones de una lista en Python

En matemáticas, un conjunto de potencias de cualquier conjunto es un conjunto que contiene todos los subconjuntos posibles de un conjunto dado junto con un conjunto vacío. El conjunto de potencias del conjunto S = {2, 5, 10} es {{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}. La siguiente función powerset() se utiliza para recorrer todas las longitudes ‘r’ de la lista e imprimir todas las combinaciones posibles de los elementos de la lista.

Por ejemplo,

from itertools import chain, combinations


def powerset(list_name):
    s = list(list_name)
    return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))


A = [60, 7, "Hi"]
for x in powerset(A):
    print(x)

Producción :

()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')

Artículo relacionado - Python List