Génération de l'ensemble des parties en Python

Beginner

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

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 :

  1. Convertir la valeur donnée en une liste.
  2. Utiliser range() et itertools.combinations() pour créer un générateur qui renvoie tous les sous-ensembles.
  3. Utiliser itertools.chain.from_iterable() et list() 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.