【发布时间】:2014-11-11 00:02:26
【问题描述】:
我想将一个列表列表(例如 ([2,3,6],[3,4,9],[4,8,13]) )乘以另一个列表,该列表也将具有相同数量的列表作为第一组列表,即第一个列表可能有 3 个列表,每个列表包含 5 个数字,但第二个列表将有 3 个数字,每个数字乘以第一个列表的行的元素。例如
([2,3,6],[3,4,9],[4,8,13]) with [2,3,4]
会导致
([4,6,12],[9,12,27],[16,32,52])
到目前为止我有
sol = [inv[i]*bb[i] for i in range(len(inv[i]))]
return sol
inv[i] 是我的列表,bb 是我的列表。
我想要这个,以便它可以用于 bb 和 inv[i] 中任何长度的列表,只要它们的长度相同
谢谢大家
更新:
我添加了磅的解决方案并摆弄了一下
现在打印出来了
[20.0, -9.0, -3.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
[3.0, -2.0, -0.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
[-8.0, 4.0, 1.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
[40.0, -18.0, -6.0]
对于此代码:
print (inv[i])
sol = []
for i, item in enumerate(inv):
sol.append(map(lambda x: x*bb[i], item))
print sol[i]
我如何摆脱这些废话,只保留最后 3 行?
【问题讨论】:
-
您是否尝试取消缩进
print sol[i],并将其替换为:print sol(省略[i])?
标签: list python-2.7 multiplication