def AddVct(Vct1,Vct2,VctLen):
Vct3 = []
n=1
while n < VctLen:
Vct3[n] = Vct1[n] + Vct2[n]
n += 1
print(Vct[n])
return Vct3
程序输出:
IndexError: list assignment index out of range.
如何避免这种情况?
答案 0 :(得分:0)
您无法分配不存在的列表元素。由于您从一个空列表开始,因此不存在任何元素。通常,您会改为append()
。
Vct3.append(Vct1[n] + Vct2[n])
或者,您可以事先将Vct3
初始化为您想要的尺寸:
Vct3 = [0] * VctLen + 1
然后你已经完成的任务工作正常。
假设您从一个空列表开始并使用append()
,列表索引从0开始,因此您应该将Vct3
定义为单个元素列表,以便索引在输入和输出列表之间匹配
Vct3 = [None] # or whatever you want the first value to be
如果你想考虑列表的所有元素,或者将n
初始化为0而不是1。
然而,在这种情况下,使用列表理解会更加Pythonic
Vct3 = [a + b for (a, b) in zip(Vct1, Vct2)]
<磷>氮。 B.通常不需要将列表的长度作为其自己的参数传递。您可以使用len()
轻松获取它。