Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将两个列表的所有组合相乘_Python_List - Fatal编程技术网

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

Python 将两个列表的所有组合相乘,python,list,Python,List,我真的很想知道如何从两个列表中提取所有元素并相互相乘。例如,如果有两个列表 A=[1,3,5,7,9] B=[2,4,6,8] 我想做1X2,1X4,1X6,1x8,3x2。。。等 一个元素来自X,一个元素来自B。 我尝试使用zip,但由于长度差异,我无法获得正确答案。要从列表中获取随机值,可以执行以下类似操作: import random lst = [10,20,30] x = random.choice(lst) 导入随机库可以让您访问大量随机生成工具。根据随机库文档(),random

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

A=[1,3,5,7,9]
B=[2,4,6,8]

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

要从列表中获取随机值,可以执行以下类似操作:

import random
lst = [10,20,30]
x = random.choice(lst)
导入随机库可以让您访问大量随机生成工具。根据随机库文档(),random.choice(seq)从非空序列(如列表)返回一个随机元素。因此,上面的代码从lst中随机选择一个元素,并将该值赋给变量x

在您尝试使用随机库之前,我不想给出解决方案,因此我将让您了解如何使用上述信息。

您可以使用for循环:

A中每个项目与B中每个项目的操作:

A=[1,3,5,7,9]
B=[2,4,6,8]

C = [] #Create an empty list
for i in A: #iter each element in A
    for j in B: #iter each element in B
        mult = i * j
        C.append(mult) #Append the result in the list C
print(C)
import numpy as np

A=[1,3,5,7,9]
B=[2,4,6,8]

C = [] #Create an empty list
for i in A: #iter each element in A
    i = np.random.randint(len(A)) #Chose a random number from A
    for j in B: #iter each element in B
        mult = A[i] * j #Multiply a random number from A with each element in B
        C.append(mult) #Append the result in the list C
print(C)
a中有一个随机项,B中有一个随机项的操作:

A=[1,3,5,7,9]
B=[2,4,6,8]

C = [] #Create an empty list
for i in A: #iter each element in A
    for j in B: #iter each element in B
        mult = i * j
        C.append(mult) #Append the result in the list C
print(C)
import numpy as np

A=[1,3,5,7,9]
B=[2,4,6,8]

C = [] #Create an empty list
for i in A: #iter each element in A
    i = np.random.randint(len(A)) #Chose a random number from A
    for j in B: #iter each element in B
        mult = A[i] * j #Multiply a random number from A with each element in B
        C.append(mult) #Append the result in the list C
print(C)

由于您的问题似乎需要两个列表之间的笛卡尔乘积,因此可以使用将
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)]
然后,如果要将每个元组中的两个元素相乘,可以执行以下操作:

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

你可能想做类似的事情:“我想做1X2、1X4、1X6、1x8、3x2……等等。”这不是随机的。它看起来像两个列表的笛卡尔网格。这就是你想要的,还是你真的想要两个列表的随机样本?欢迎来到这里。不幸的是,这不是一个讨论论坛或教程服务。请花点时间阅读该页面上的链接和其他链接。你应该花一些时间来练习这些例子。它将向您介绍Python提供的工具,您甚至可以开始获得解决问题的想法。