Geração do Conjunto das Partes em Python

Beginner

This tutorial is from open-source community. Access the source code

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:

  1. Converter o valor dado em uma lista.
  2. Usar range() e itertools.combinations() para criar um gerador que retorna todos os subconjuntos.
  3. Usar itertools.chain.from_iterable() e list() 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.