【问题标题】:dot product within a nested list python嵌套列表python中的点积
【发布时间】:2018-03-13 14:48:23
【问题描述】:

我想问是否可以在这个嵌套列表中创建一个点积 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)

【问题讨论】:

标签: python python-3.x list nested dot-product


【解决方案1】:

您可以解压并压缩a,然后使用operatorreduce(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) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2015-12-16
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多