Heim >Backend-Entwicklung >Python-Tutorial >Was ist die Methode zur Gesamtkombination zweier Listen in Python?

Was ist die Methode zur Gesamtkombination zweier Listen in Python?

王林
王林nach vorne
2023-05-05 20:34:121156Durchsuche

Was ist ein Komplettpaket?

Zwei Tupel (a, b) (c, d), dann sind ihre Kombinationen a,c a,d b,c b,d

Methode 1

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)]

Weg 2

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]]

Weg 3

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen