Heim >Backend-Entwicklung >Python-Tutorial >Wie koppele ich Elemente aus kurzen und langen Listen mithilfe von Permutationen?
Übereinstimmende Permutationen: Lange und kurze Listen ausrichten
Angesichts zweier Listen unterschiedlicher Länge möchten wir Paarungen basierend auf der Länge der Listen erstellen kürzere Liste. Jedes Element aus der kürzeren Liste sollte einer Permutation der Elemente aus der längeren Liste entsprechen.
Zum Beispiel mit Namen = ['a', 'b'] und Zahlen = [1, 2], wir würde Folgendes erhalten:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)]
Wenn die Namensliste länger ist, z. B. Namen = ['a', 'b', 'c'], würden die Permutationen erweitert, um Folgendes einzuschließen:
[('a', 1), ('b', 2)] [('b', 1), ('a', 2)] [('a', 1), ('c', 2)] [('c', 1), ('a', 2)] [('b', 1), ('c', 2)] [('c', 1), ('b', 2)]
Lösung mit itertools.product
Ein einfacher Ansatz besteht darin, die Funktion itertools.product aus der Python-Standardbibliothek zu verwenden. Es generiert ein kartesisches Produkt von Eingabe-Iterablen und erstellt alle möglichen Kombinationen.
import itertools a = ["foo", "melon"] b = [True, False] c = list(itertools.product(a, b)) # Output: # [("foo", True), ("foo", False), ("melon", True), ("melon", False)]
In unserem speziellen Fall können wir itertools.product verwenden, um die Elemente der kürzeren Liste mit den Permutationen der längeren Liste zu koppeln. Die Permutationen werden durch Auflisten aller möglichen Neuordnungen der Elemente der längeren Liste generiert.
Das obige ist der detaillierte Inhalt vonWie koppele ich Elemente aus kurzen und langen Listen mithilfe von Permutationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!