Maison > développement back-end > Tutoriel Python > Comment puis-je générer tous les sous-ensembles d'un ensemble (Powerset) à l'aide de Python ?

Comment puis-je générer tous les sous-ensembles d'un ensemble (Powerset) à l'aide de Python ?

Mary-Kate Olsen
Libérer: 2024-12-12 12:25:15
original
578 Les gens l'ont consulté

How Can I Generate All Subsets of a Set (Powerset) Using Python?

Génération de tous les sous-ensembles d'un ensemble (Powerset)

Considérons un ensemble {0, 1, 2, 3}. Comment pouvons-nous obtenir tous les sous-ensembles possibles de cet ensemble, appelés son ensemble de puissances ?

Une approche efficace consiste à exploiter le module itertools de Python, qui fournit une recette pratique pour cette tâche.

from itertools import chain, combinations

def powerset(iterable):
    "powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
    s = list(iterable)
    return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
Copier après la connexion

Lors de l'exécution de powerset([1,2,3]), nous obtenons le résultat suivant :

>>> list(powerset([1,2,3]))
[(), (1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
Copier après la connexion

Le tuple vide étant supprimé, nous get:

>>> list(powerset([1,2,3]))[1:]
[(1,), (2,), (3,), (1,2), (1,3), (2,3), (1,2,3)]
Copier après la connexion

Pour adapter la sortie à vos besoins spécifiques, des ajustements à l'instruction range peuvent être effectués (par exemple, range(1, len(s) 1) pour exclure le tuple vide).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal