Générer toutes les combinaisons possibles d'éléments de liste
Le problème vient de la nécessité de générer toutes les combinaisons possibles d'éléments d'une liste donnée, indépendamment de leur longueur. Bien que parcourir des entiers décimaux et appliquer un filtrage binaire soit une solution plausible, il existe des approches plus efficaces.
Une méthode consiste à utiliser le module itertools. En itérant sur toutes les longueurs possibles, cette approche génère des combinaisons à l'aide de la fonction combinaisons().
import itertools stuff = [1, 2, 3] for L in range(len(stuff) + 1): for subset in itertools.combinations(stuff, L): print(subset)
Une solution alternative, plus concise, consiste à générer une chaîne de générateurs de combinaisons() et à la parcourir.
from itertools import chain, combinations def all_subsets(ss): return chain(*map(lambda x: combinations(ss, x), range(0, len(ss)+1))) for subset in all_subsets(stuff): print(subset)
Cette méthode génère efficacement toutes les combinaisons possibles d'éléments de liste, quelle que soit leur longueur, offrant une solution complète au problème.
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!