Zwei Tupel (a, b) (c, d), dann sind ihre Kombinationen a,c a,d b,c b,d
Generieren Sie eine Listenliste über die Klasse itertools, die zwei enthält. Alle möglichen Kombinationen dazwischen Listen
import itertools list1 = [1, 2, 3, 4] list2 = [5, 6, 7, 8,9] print(list(itertools.product(list1, list2)))
Ausgabeergebnisse:
[(1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9), (4, 5), (4, 6), (4, 7), (4, 8), (4, 9)]
Versuchen Sie, einen Listenersteller zu verwenden, um verschachtelte Listen zu erstellen:
>>> [[[x,y] for x in list1] for y in list2] [[[1, 3], [2, 3]], [[1, 4], [2, 4]]]
Oder, wenn Sie eine einzeilige Liste wünschen, entfernen Sie einfach die Klammern:
>>> [[x,y] for x in list1 for y in list2] [[1, 3], [1, 4], [2, 3], [2, 4]]
Wiederholen Sie die erste Liste, permutieren Sie die zweite Liste und komprimieren Sie sie.
>>> from itertools import permutations, repeat >>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> list(list(zip(r, p)) for (r, p) in zip(repeat(a), permutations(b))) [[(1, 4), (2, 5), (3, 6)], [(1, 4), (2, 6), (3, 5)], [(1, 5), (2, 4), (3, 6)], [(1, 5), (2, 6), (3, 4)], [(1, 6), (2, 4), (3, 5)], [(1, 6), (2, 5), (3, 4)]]
EDIT: Wie Peter Otten betonte, sind der innere Reißverschluss und die Wiederholung überflüssig.
[list(zip(a, p)) for p in permutations(b)]
Das obige ist der detaillierte Inhalt vonWas ist die Methode zur Gesamtkombination zweier Listen in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!