我需要编写函数 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/