python - Python中两个列表的点积

标签 python list product numeric

我需要编写函数 dot( L, K ) 来输出列表 L 和 K 的点积。如果这两个输入列表的长度不相等,则 dot 应该输出 0。如果这两个列表都是空,点也应该输出 0。你应该假设输入列表只包含数值。

这是我目前所拥有的:

def dot( L, K ):
    if len[L]!=len[K]:
        return 0
    elif L == '' or L == []:
        return 0
    else:
        return sum(L[0]*K[0], L[1]*K[1], ect.)

谁能帮帮我,因为我不知道最后一行该做什么!

最佳答案

您可以使用列表理解来做到这一点:

def dot(K, L):
   if len(K) != len(L):
      return 0

   return sum(i[0] * i[1] for i in zip(K, L))

如果任一列表为空,zip(K, L) 将返回 []。然后,根据定义,sum([]) 将为您提供零。

关于python - Python中两个列表的点积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669855/

相关文章:

php - 从 Woocommerce 3 中的订单中获取选定的变体属性

export - eclipse 产品调用导致 java.lang.RuntimeException : No application id has been found

R成对积

python - PySpark:如何判断数据框的列类型

python - win32com + Outlook 每次执行仅捕获收件箱中 50% 的邮件

list - Haskell:根据第一个值在列表中查找元组的第二个值

java - 嵌套列表中的通用类型和通配符

python - 通过 pip 安装的 spyder-kernels 模块的 ModuleNotFoundError

python - ModuleNotFoundError:没有名为 'pycaret.arules' 的模块

python - 使用键和值列表到字典