我试图对两个具有相同尺寸的数组进行向量相加,但是我得到的只是“列表索引超出范围”错误。我使用的代码是:
x = [0, 0, 0]
y = [1, 2, 3]
i = 0
c = []
while (i <= len(x)):
c.append(a[i] + b[i])
i = i + 1
print c
您能指出我的问题在哪里吗?任何帮助或想法将不胜感激。
答案 0 :(得分:0)
您要遍历两个列表以获取以下索引值:[0,1,2,3]
。
由于两个列表的长度均为3,因此将其迭代到索引值3
毫无意义,因为索引值从0
开始。
在while循环条件中,应将条件从i <= len(x)
更改为i < len(x)
。
答案 1 :(得分:0)
在python中,请尽量避免在索引上循环。下面的列表理解是更Python化的方式
c = [sum(items) for items in zip(x, y)]
列表推导允许您对可迭代项进行操作并返回列表。 zip
允许您同时迭代多个可迭代对象。当您继续学习python时,这是一个不错的模式