Introdução
Em matemática, o conjunto das partes (power set) de um conjunto é o conjunto de todos os subconjuntos do conjunto, incluindo o conjunto vazio e o próprio conjunto. Em Python, podemos criar uma função que retorna o conjunto das partes de um iterável dado.
Conjunto das Partes (Powerset)
Escreva uma função Python chamada powerset(iterable) que recebe um iterável como argumento e retorna o conjunto das partes (powerset) do iterável. A função deve seguir estes passos:
- Converter o valor dado em uma lista.
- Usar
range()eitertools.combinations()para criar um gerador que retorna todos os subconjuntos. - Usar
itertools.chain.from_iterable()elist()para consumir o gerador e retornar uma lista.
from itertools import chain, combinations
def powerset(iterable):
s = list(iterable)
return list(chain.from_iterable(combinations(s, r) for r in range(len(s)+1)))
powerset([1, 2]) ## [(), (1,), (2,), (1, 2)]
Resumo
Neste desafio, você aprendeu como criar uma função Python que retorna o conjunto das partes (powerset) de um iterável dado. A função usa range() e itertools.combinations() para criar um gerador que retorna todos os subconjuntos, e itertools.chain.from_iterable() e list() para consumir o gerador e retornar uma lista.