迭代两个列表并产生第三个列表

时间:2014-08-03 15:35:38

标签: python list loops for-loop

有谁知道如何做迭代代码:

我提供了两个初始列表(l1l2):

l1=[a,b,c], where a,b,c are numbers
l2=[i,j,k,w,z]

然后获得第三个(l3;其长度与l1相同):

l3=[[a*i+a*j+a*k+a*w+a*z],[b*i+b*j+b*k+b*w+b*z],[c*i+c*j+c*k+c*w+c*z]]

2 个答案:

答案 0 :(得分:3)

l3 = []
for i in l1:
    temp = 0
    for j in l2:
        temp += i*j
    l3.append([temp])

但当然,有一个单行:

l3 = [[sum(i*j) for j in l2] for i in l1]

但是有一些代数:

total = sum(l2)
l3 = [[i*total] for i in l1]

答案 1 :(得分:1)

单线应该是这样的:

l3 = [[sum([i*j for j in l2])] for i in l1]

inspectorG4dget将返回数字列表列表。 但话说回来,他的代数解决方案将起作用并且是最好的:)