我想问一下是否有可能在这个嵌套列表中创建一个点积a = [[1,2,3],[2,4,2],[1,2,3],[5 ,6,7]]在Python中没有使用numpy
我试过了:
a = [[1,2,3],[2,4,2],[1,2,3], [5,6,7]]
for x, y in zip(a):
temp = []
for m, n in zip(x):
temp.append(m * n)
c.append([sum(temp)])
print(c)
但是我收到了一条错误消息:
没有足够的值解包(预期2,得1)
答案 0 :(得分:1)
您可以解压缩并压缩a
,然后使用operator
和reduce
(内置于Python 2.x):
>>> from functools import reduce
>>> from operator import mul
>>> sum(reduce(mul, i) for i in zip(*a))
232
换句话说:
>>> i, j, k = zip(*a)
>>> i
(1, 2, 1, 5)
>>> j
(2, 4, 2, 6)
>>> k
(3, 2, 3, 7)
然后你拿sum( (1*2*1*5, 2*4*2*6, 3*2*3*7) )
。