


Comment le module « itertools » de Python peut-il être utilisé pour générer efficacement un Powerset ?
Dec 17, 2024 pm 10:58 PMGénération d'ensembles de puissances : une explication détaillée
Étant donné un ensemble S, l'ensemble de puissances de S fait référence à l'ensemble de tous les sous-ensembles de S. Pour Par exemple, pour l'ensemble {0, 1, 2, 3}, son ensemble de puissances comprend l'ensemble vide, les sous-ensembles avec des éléments uniques, les sous-ensembles avec deux éléments, des sous-ensembles avec trois éléments et l'ensemble d'origine lui-même.
Solution : implémentation de Powerset à l'aide du module itertools de Python
Le module itertools de Python fournit une recette simple pour générer un ensemble de puissances :
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))
Cette fonction prend un itérable en entrée et génère toutes les combinaisons possibles de ses éléments. La fonction de combinaisons génère des sous-ensembles de différentes tailles, allant d'un sous-ensemble vide à un sous-ensemble avec tous les éléments.
Exemple d'utilisation :
Pour illustrer le fonctionnement de la fonction, considérons l'ensemble "abcd":
>>> list(powerset("abcd")) [(), ('a',), ('b',), ('c',), ('d',), ('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd'), ('a', 'b', 'c'), ('a', 'b', 'd'), ('a', 'c', 'd'), ('b', 'c', 'd'), ('a', 'b', 'c', 'd')]
Par défaut, la fonction inclut également un tuple vide, qui peut être omis par en ajustant l'instruction range à range(1, len(s) 1).
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser la belle soupe pour analyser HTML?

Comment télécharger des fichiers dans Python

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Intro au ballon: ajout d'une page de contact

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?
