python列表将每个值相乘
我想知道如何将两个不同列表中的每个元素相乘 例如:python列表将每个值相乘,python,python-3.x,list,Python,Python 3.x,List,我想知道如何将两个不同列表中的每个元素相乘 例如: list_a=[1,2,3,4,5] list_b=[10,20,30,40,50] 我想让它成为1X10 2X20 3X30 4X40 5X50 因此结果将是10,40,90,160,250 如果你能帮助我,我将不胜感激 a = [1,2,3,4,5] b = [10,20,30,40,50] print [a[i]*b[i] for i in range(len(b))] 这将对您有所帮助更干净的版本将是: a,b = [1,2,3,4
list_a=[1,2,3,4,5]
list_b=[10,20,30,40,50]
我想让它成为1X10 2X20 3X30 4X40 5X50
因此结果将是10,40,90,160,250
如果你能帮助我,我将不胜感激
a = [1,2,3,4,5]
b = [10,20,30,40,50]
print [a[i]*b[i] for i in range(len(b))]
这将对您有所帮助更干净的版本将是:
a,b = [1,2,3,4,5],[10,20,30,40,50]
for i,j in zip(a,b):
print '%d x %d = '%(i,j),'%d units'% ((i*j))
您可以使用
zip
功能,如下所示
>>> list_a = [1,2,3,4,5]
>>> list_b = [10,20,30,40,50]
>>> [(x[0]*x[1]) for x in zip(list_a,list_b)]
[10, 40, 90, 160, 250]
使用zip()
:
输出:
[10, 40, 90, 160, 250]
可能重复的
zip
,这是最好的方法。您忘了退回他们的产品!我将错误地理解这个问题,现在我将更改输出为什么在您的解决方案中使用str
。@adchoi_97想要列表中的integer
项而不是string
。您应该使用zip
而不是map
。您能解释一下这有什么区别吗?我的意思是它节省了计算时间还是什么?那map
用于映射操作,而zip
用于压缩。您正在使用zip
进行映射。它的形式很糟糕。你不需要None
参数,只要zip(a,b)
是的,我检查过了!对于Python3,您需要将k,v
放在如下括号中:(k,v)
。最后一行是Final=[k*v代表zip中的(k,v)(列表a,列表b)]
。对不起,你说得对。Python3文档说需要括号,但它只是理解列表的返回部分。[a*b代表a,b在zip中(list\u a,list\u b)]
会稍微整洁些或者列表(map(operator.mul,list\u a,list\u b))
list_a = [1,2,3,4,5]
list_b = [10,20,30,40,50]
final = [k*v for k, v in zip(list_a, list_b)]
print final
[10, 40, 90, 160, 250]