Introduction
En mathématiques, l'ensemble des parties d'un ensemble est l'ensemble de tous les sous-ensembles de cet ensemble, y compris l'ensemble vide et l'ensemble lui-même. En Python, on peut créer une fonction qui renvoie l'ensemble des parties d'un itérable donné.
Ensemble des parties
Écrivez une fonction Python appelée powerset(iterable) qui prend un itérable en argument et renvoie l'ensemble des parties de l'itérable. La fonction doit suivre les étapes suivantes :
- Convertir la valeur donnée en une liste.
- Utiliser
range()etitertools.combinations()pour créer un générateur qui renvoie tous les sous-ensembles. - Utiliser
itertools.chain.from_iterable()etlist()pour consommer le générateur et renvoyer une liste.
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)]
Résumé
Dans ce défi, vous avez appris à créer une fonction Python qui renvoie l'ensemble des parties d'un itérable donné. La fonction utilise range() et itertools.combinations() pour créer un générateur qui renvoie tous les sous-ensembles, et itertools.chain.from_iterable() et list() pour consommer le générateur et renvoyer une liste.