Python 嵌套列表中的点积
我想问一下,是否可以在这个嵌套列表a=[[1,2,3]、[2,4,2]、[1,2,3]、[5,6,7]]中创建点积,而不使用numpy 我试过:Python 嵌套列表中的点积,python,python-3.x,list,nested,dot-product,Python,Python 3.x,List,Nested,Dot Product,我想问一下,是否可以在这个嵌套列表a=[[1,2,3]、[2,4,2]、[1,2,3]、[5,6,7]]中创建点积,而不使用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) 但是,我收到一条错误消息: 没
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)
您可以解包并压缩
a
,然后使用operator
和reduce
(内置于Python 2.x中):
换言之:
>>> i, j, k = zip(*a)
>>> i
(1, 2, 1, 5)
>>> j
(2, 4, 2, 6)
>>> k
(3, 2, 3, 7)
然后取和((1*2*1*5,2*4*2*6,3*2*3*7))
可能的重复项
>>> i, j, k = zip(*a)
>>> i
(1, 2, 1, 5)
>>> j
(2, 4, 2, 6)
>>> k
(3, 2, 3, 7)