Introducción
En matemáticas, el conjunto potencia de un conjunto es el conjunto de todos los subconjuntos del conjunto, incluyendo el conjunto vacío y el conjunto mismo. En Python, podemos crear una función que devuelva el conjunto potencia de un iterable dado.
Conjunto potencia
Escribe una función de Python llamada powerset(iterable) que tome un iterable como argumento y devuelva el conjunto potencia del iterable. La función debe seguir estos pasos:
- Convertir el valor dado en una lista.
- Usar
range()yitertools.combinations()para crear un generador que devuelva todos los subconjuntos. - Usar
itertools.chain.from_iterable()ylist()para consumir el generador y devolver una 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)]
Resumen
En este desafío, has aprendido cómo crear una función de Python que devuelve el conjunto potencia de un iterable dado. La función utiliza range() y itertools.combinations() para crear un generador que devuelve todos los subconjuntos, y itertools.chain.from_iterable() y list() para consumir el generador y devolver una lista.