问题描述
我收到一个类型错误:列表索引必须是整数或切片,当我运行它时,不能在代码的第四行浮动。 nums 和 nums2 只是要求用户提供一个数字列表,这些数字将用于计算我提供的代码中的内积。
def innerproduct(nums,nums2):
for i in nums:
if i in nums2:
sum +- nums[i] * nums2[i]
return innerproduct
我不确定为什么会发生此错误以及如何解决此问题,因此不胜感激。
解决方法
for i in nums
表示 i
会将值存储在 nums 列表中,而不是索引中。
例如,如果 nums = [1.5,6.2,0.1] 那么 i 将是 1.5
并且 nums[i]
正在抛出该错误。
要么你可以做 for i in range(len(nums)):
并得到 nums[i]
或者只是 for i in nums
然后 sum += i
而不是 nums[i]
扩展舒巴姆的回答,
使用以下代码段更新您的代码,您的代码将起作用
def innerproduct(nums,nums2):
sm = 0
for i,num in enumerate(nums): # enumerate returns index of item & actual item
if num in nums2:
sm += num * nums2[i]
return sm