Combinações de uma lista em Python

Samyak Jain 30 janeiro 2023
  1. Use a função itertools.combinations() para encontrar as combinações de uma lista em Python
  2. Use a função itertools.combinations_with_replacement() para encontrar as combinações de uma lista em Python
  3. Crie uma função powerset() definida pelo usuário para encontrar as combinações de uma lista em Python
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')

Artigo relacionado - Python List