So generieren Sie alle Teilmengen einer Menge mit itertools.combinations
In Python bietet das Modul itertools.combinations eine einfache und effiziente Methode zur Erzeugung der Potenzmenge einer Menge. So können Sie es machen:
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))
Um beispielsweise alle Teilmengen der Menge {0, 1, 2, 3} zu finden, würden Sie den folgenden Code verwenden:
>>> list(powerset([0, 1, 2, 3])) [(), (0,), (1,), (2,), (3,), (0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3), (0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3), (0, 1, 2, 3)]
Beachten Sie, dass das leere Tupel () im Powerset enthalten ist, da es die leere Teilmenge darstellt.
Wenn Sie das leere Tupel lieber nicht haben möchten In den Ergebnissen können Sie den Bereich in der Kombinationsschleife wie folgt ändern:
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(1, len(s)+1))
Dadurch wird das leere Tupel aus den zurückgegebenen Teilmengen ausgeschlossen.
Das obige ist der detaillierte Inhalt vonWie generiert man alle Teilmengen einer Menge mit Pythons „itertools.combinations'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!