Sie suchen eine Methode, um alle möglichen 2^N Kombinationen aus a zu generieren Liste mit 15 Elementen, die Kombinationen beliebiger Länge unter Beibehaltung der ursprünglichen Reihenfolge ermöglicht. Während Ihr Ansatz mit binärer Darstellung eine praktikable Option ist, lassen Sie uns eine umfassendere Lösung erkunden.
Anstatt sich auf die binäre Darstellung zu verlassen, sollten Sie die Verwendung der Funktion itertools.combinations() aus der Python-Standardbibliothek in Betracht ziehen. Diese Funktion generiert eine Folge aller Kombinationen einer bestimmten Länge aus einem bestimmten Iterable. Durch Variieren des Längenparameters können Sie Kombinationen jeder gewünschten Größe erhalten.
Der folgende Python-Code demonstriert diesen Ansatz:
import itertools stuff = [1, 2, 3] # Loop through all possible lengths for L in range(len(stuff) + 1): # Generate combinations of length L for subset in itertools.combinations(stuff, L): print(subset)
Dieser Code generiert alle 32.768 möglichen Kombinationen der Elemente in die Stuff-Liste, unabhängig von ihrer Länge.
Alternativ können Sie für eine schlankere Lösung die Funktionen chain() und combinations() zum Generieren verwenden eine einzelne Sequenz, die alle Kombinationen aller möglichen Längen enthält:
import itertools 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)
Dieser Code erzielt das gleiche Ergebnis, jedoch auf prägnantere und wohl elegantere Weise.
Das obige ist der detaillierte Inhalt vonWie kann ich in Python alle möglichen Kombinationen der Elemente einer Liste generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!