如何解决试图使向量相加的“列表索引超出范围”?

时间:2019-09-29 23:25:11

标签: python-2.7 list while-loop

我试图对两个具有相同尺寸的数组进行向量相加,但是我得到的只是“列表索引超出范围”错误。我使用的代码是:

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

您能指出我的问题在哪里吗?任何帮助或想法将不胜感激。

2 个答案:

答案 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时,这是一个不错的模式