我需要編寫一個Python函數,返回listA
和listB
(兩個列表將始終具有相同的長度並且是兩個整數列表)的成對乘積之和。TypeError:在Python中計算點積
例如,如果listA = [1, 2, 3]
和listB = [4, 5, 6]
,點積1*4 + 2*5 + 3*6
,那麼函數應該返回:32
這是我寫的代碼,到目前爲止,但它會產生一個錯誤。
def dotProduct(listA, listB):
'''
listA: a list of numbers
listB: a list of numbers of the same length as listA
'''
sum([listA[i][0]*listB[i] for i in range(len(listB))])
它打印:
TypeError: 'int' object is not subscriptable
我怎樣才能改變這種代碼,以便在列表中的元素可以成倍元素方面?
移除'[0]',A是一個列表,而不是列表 – marcadian
的列表。如果'listA'是整數列表,然後'listA的[I]'是一個整數。那麼你怎麼做'listA [i] [0]'? –
試試'sum(a * b for a,b in zip(listA,listB))' – hpaulj