将两个列表的所有组合相乘

Ell*_*lie -1 python list

我真的想知道如何从两个列表中提取所有元素并相互相乘.例如,如果有两个列表

A=[1,3,5,7,9]
B=[2,4,6,8]
Run Code Online (Sandbox Code Playgroud)

我想做1X2,1X4,1X6,1x8,3x2 ......等.来自AX的一个元素来自B的一个元素.我试图使用zip但由于长度差异,我无法得到正确的答案.

Roa*_*ner 5

您的问题似乎想要两个列表之间的笛卡尔积,您可以使用itertools.product从以下A每个元素绑定每个元素B:

>>> from itertools import product
>>> A = [1,3,5,7,9]
>>> B = [2,4,6,8]
>>> list(product(A, B))
[(1, 2), (1, 4), (1, 6), (1, 8), (3, 2), (3, 4), (3, 6), (3, 8), (5, 2), (5, 4), (5, 6), (5, 8), (7, 2), (7, 4), (7, 6), (7, 8), (9, 2), (9, 4), (9, 6), (9, 8)]
Run Code Online (Sandbox Code Playgroud)

然后,如果要将每个元组中的两个元素相乘,则可以执行以下操作:

>>> [x * y for x, y in product(A, B)]
[2, 4, 6, 8, 6, 12, 18, 24, 10, 20, 30, 40, 14, 28, 42, 56, 18, 36, 54, 72]
Run Code Online (Sandbox Code Playgroud)