Maison > développement back-end > Tutoriel Python > Comment générer efficacement toutes les combinaisons possibles d'éléments de liste en Python ?

Comment générer efficacement toutes les combinaisons possibles d'éléments de liste en Python ?

DDD
Libérer: 2024-12-20 03:24:12
original
384 Les gens l'ont consulté

How to Efficiently Generate All Possible Combinations of List Elements in Python?

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)
Copier après la connexion

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)
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal