Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python effizient alle möglichen Kombinationen aus einer Liste von Listen generieren?

Wie kann ich in Python effizient alle möglichen Kombinationen aus einer Liste von Listen generieren?

DDD
DDDOriginal
2024-12-10 11:58:14955Durchsuche

How can I efficiently generate all possible combinations from a list of lists in Python?

Kombinationen einer Liste von Listen in Python

In der Programmierung ist das Kombinieren von Elementen aus mehreren Listen eine häufige Aufgabe. Diese Frage konzentriert sich auf die Generierung aller möglichen Kombinationen von Elementen aus einer Liste von Listen, unabhängig von ihrer Größe.

Um dies zu erreichen, bietet die Python-Bibliothek eine geniale Lösung mit der Funktion itertools.product. Diese Funktion verwendet eine variable Anzahl von Iterables als Eingabe und gibt ein kartesisches Produkt zurück, das im Wesentlichen alle möglichen Kombinationen von Elementen aus jedem Iterable erzeugt.

Betrachten wir zum Beispiel die Eingabeliste von Listen: [[1,2 ,3],[4,5,6],[7,8,9,10]].

import itertools
a = [[1,2,3],[4,5,6],[7,8,9,10]]
combinations = list(itertools.product(*a))

Die resultierende Kombinationsliste enthält alle möglichen Kombinationen der Elemente aus den Eingabelisten:

[(1, 4, 7), (1, 4, 8), (1, 4, 9), (1, 4, 10), (1, 5, 7), (1, 5, 8), (1, 5, 9), (1, 5, 10),
(1, 6, 7), (1, 6, 8), (1, 6, 9), (1, 6, 10), (2, 4, 7), (2, 4, 8), (2, 4, 9), (2, 4, 10),
(2, 5, 7), (2, 5, 8), (2, 5, 9), (2, 5, 10), (2, 6, 7), (2, 6, 8), (2, 6, 9), (2, 6, 10),
(3, 4, 7), (3, 4, 8), (3, 4, 9), (3, 4, 10), (3, 5, 7), (3, 5, 8), (3, 5, 9), (3, 5, 10),
(3, 6, 7), (3, 6, 8), (3, 6, 9), (3, 6, 10)]

Durch die Leistungsfähigkeit von itertools.product wird das Generieren von Kombinationen aus einer Liste von Listen zu einer prägnanten und eleganten Operation in Python.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python effizient alle möglichen Kombinationen aus einer Liste von Listen generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn