Combinações de uma lista em Python
-
Use a função
itertools.combinations()
para encontrar as combinações de uma lista em Python -
Use a função
itertools.combinations_with_replacement()
para encontrar as combinações de uma lista em Python -
Crie uma função
powerset()
definida pelo usuário para encontrar as combinações de uma lista em Python
Uma combinação é uma técnica que determina o número de arranjos possíveis em uma coleção de elementos. Em uma combinação de elementos, os elementos são selecionados em uma ordem arbitrária.
Neste tutorial, encontraremos as combinações totais dos elementos de uma lista em Python.
Use a função itertools.combinations()
para encontrar as combinações de uma lista em Python
A função combinations(list_name, x)
do módulo itertools
leva o nome da lista e um número ‘x’ como os parâmetros e retorna uma lista de tuplas, cada uma de comprimento ‘x’ contendo todas as combinações possíveis de um elemento em a lista com os outros elementos.
Por exemplo,
from itertools import combinations
A = [10, 5, "Hi"]
temp = combinations(A, 2)
for i in list(temp):
print(i)
Resultado:
(10, 5)
(10, 'Hi')
(5, 'Hi')
Uma lista classificada produzirá as tuplas de combinação em ordem classificada. Uma combinação de um elemento na lista com ele mesmo não é possível usando a função combinations()
.
Use a função itertools.combinations_with_replacement()
para encontrar as combinações de uma lista em Python
A função transactions_with_replacement (list_name, x)
do módulo itertools
leva o nome da lista e um número ‘x’ como os parâmetros e retorna uma lista de tuplas, cada uma de comprimento ‘x’ contendo todas as combinações possíveis dos elementos da lista. Uma combinação de um elemento da lista com ele mesmo é possível usando esta função.
Por exemplo,
from itertools import combinations_with_replacement
A = [1, 5, "Hi"]
temp = combinations_with_replacement(A, 2)
for i in list(temp):
print(i)
Resultado:
(1, 1)
(1, 5)
(1, 'Hi')
(5, 5)
(5, 'Hi')
('Hi', 'Hi')
Crie uma função powerset()
definida pelo usuário para encontrar as combinações de uma lista em Python
Em matemática, um conjunto de potência de qualquer conjunto é um conjunto que contém todos os subconjuntos possíveis de um determinado conjunto junto com um conjunto vazio. Conjunto de potência do conjunto S = {2, 5, 10}
é {{}, {2}, {5}, {10}, {2, 5}, {2, 10}, {5, 10}, {2, 5, 10}}
. A seguinte função powerset()
é usada para percorrer todos os comprimentos ‘r’ da lista e imprimir todas as combinações possíveis dos elementos da lista.
Por exemplo,
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)
Resultado:
()
(1,)
(5,)
('Hi',)
(1, 5)
(1, 'Hi')
(5, 'Hi')
(1, 5, 'Hi')