Python 对列表的两个列表执行数学计算

Python 对列表的两个列表执行数学计算,python,list,Python,List,我有两份清单,其中包括: L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]] L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]] 我想编写一个python程序,从L1中提取每个列表,与L2进行比较,并执行类似乘法的操作 示例:python从L1获取[2.1,2.2]并与[3.1,3.2]进行比较并执行乘法的情况 我试过了,但似乎我做得不对。注:multiplicationL是一个定义的函数,它将两个列表作为参数 L1 = [[2.1,2.2],[2.

我有两份清单,其中包括:

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]
我想编写一个python程序,从L1中提取每个列表,与L2进行比较,并执行类似乘法的操作

示例:python从L1获取[2.1,2.2]并与[3.1,3.2]进行比较并执行乘法的情况

我试过了,但似乎我做得不对。注:multiplicationL是一个定义的函数,它将两个列表作为参数

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]

for i in L1:
    for j in L2:
         result = multiplicationL(L1[i],L2[j])
print(result)

坦白地说,我想从L1和L2中分别取一个列表并对它们执行操作。

对于乘法,这将完成以下工作:

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]

result=[]
for i in L1:
    for j in L2:
         res = [i[a]*j[a] for a in range(len(i))]
         result.append(res)
print(result)
为了将其推广到其他操作,您可以在单独的函数中定义该操作,如下所示:

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]

def multiply(i,j):
    return [i[a]*j[a] for a in range(len(i))]

result=[]
for i in L1:
    for j in L2:
         res = multiply(i,j)
         result.append(res)
print(result)
这张照片

[[6.510000000000001, 7.040000000000001], [6.93, 7.48], [7.3500000000000005, 7.920000000000001], [7.13, 7.68], [7.589999999999999, 8.16], [8.049999999999999, 8.64], [7.75, 8.32], [8.25, 8.84], [8.75, 9.360000000000001]]

对于乘法,这将完成以下工作:

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]

result=[]
for i in L1:
    for j in L2:
         res = [i[a]*j[a] for a in range(len(i))]
         result.append(res)
print(result)
为了将其推广到其他操作,您可以在单独的函数中定义该操作,如下所示:

L1 = [[2.1,2.2],[2.3,2.4],[2.5,2.6]]
L2 = [[3.1,3.2],[3.3,3.4],[3.5,3.6]]

def multiply(i,j):
    return [i[a]*j[a] for a in range(len(i))]

result=[]
for i in L1:
    for j in L2:
         res = multiply(i,j)
         result.append(res)
print(result)
这张照片

[[6.510000000000001, 7.040000000000001], [6.93, 7.48], [7.3500000000000005, 7.920000000000001], [7.13, 7.68], [7.589999999999999, 8.16], [8.049999999999999, 8.64], [7.75, 8.32], [8.25, 8.84], [8.75, 9.360000000000001]]

此处
i,j
将是
L1,L2
非索引的元素。此处
i,j
将是
L1,L2
非索引的元素。感谢您的帮助!但我想问一些关于这个过程早期阶段的问题。你看,L1有[[2.1,2.2],[2.3,2.4],[2.5,2.6]],L2有[[3.1,3.2],[3.3,3.4],[3.5,3.6]]。如果我创建一个临时列表,每次包含一个从L1和L2传递到定义函数的列表,是否可能?示例:tempL1=[2.1,2.2]和tempL2=[3.1,3.2]然后这两个列表进入定义的函数,其中两个列表是它的参数。是的,这正是res=multiply(i,j)中发生的情况。我迭代L1中的3个元素。这些元素是列表,所以每次我都是一个列表。类似地,j迭代L2中的3个列表。因此,在函数第一次到达行res=multiply(i,j)时,我们有i=[2.1,2.2]和j=[3.1,3.2],因此第一个res是multiply([2.1,2.2],[3.1,3.2])。感谢它的帮助!但我想问一些关于这个过程早期阶段的问题。你看,L1有[[2.1,2.2],[2.3,2.4],[2.5,2.6]],L2有[[3.1,3.2],[3.3,3.4],[3.5,3.6]]。如果我创建一个临时列表,每次包含一个从L1和L2传递到定义函数的列表,是否可能?示例:tempL1=[2.1,2.2]和tempL2=[3.1,3.2]然后这两个列表进入定义的函数,其中两个列表是它的参数。是的,这正是res=multiply(i,j)中发生的情况。我迭代L1中的3个元素。这些元素是列表,所以每次我都是一个列表。类似地,j迭代L2中的3个列表。因此,在函数第一次到达行res=multiply(i,j)时,我们有i=[2.1,2.2]和j=[3.1,3.2],因此第一个res是multiply([2.1,2.2],[3.1,3.2])。