Python 列表索引超出范围 - 算法
Python list index out of range - Algorithm
我遇到这个错误,我可以循环遍历一个数组,但我不知道该怎么做。但我尝试插入 0
而不是 p1
、p2
和 p3
。这奏效了。但是如果我运行这个代码。
这个程序做的事情是对两个数组进行排序,并按正确的顺序设置它们。
Arr2 = [2,5,6,8]
Arr1_Length = len(Arr1)
Arr2_Length = len(Arr2)
FinishArr_Length = Arr1_Length + Arr2_Length
FinishArr = []
p1 = 0
p2 = 0
p3 = 0
print(FinishArr)
print(FinishArr_Length)
print(Arr1[p1])
print(Arr2[p2])
while p3 < FinishArr_Length:
if Arr1[p1] < Arr2[p2]:
FinishArr.append(Arr1[p1])
p1 += 1
else:
FinishArr.append(Arr2[p2])
p2 += 1
p3 += 1
print(FinishArr)
我收到这个错误:
Traceback (most recent call last):
File "Test.py", line 21, in <module>
if Arr1[p1] < Arr2[p2]:
IndexError: list index out of range
您必须检查 p1 和 p2 是否不超过各自数组的长度:
while p1<Arr1_Length and p2<Arr2_Length:
if Arr1[p1] < Arr2[p2]:
FinishArr.append(Arr1[p1])
p1 += 1
else:
FinishArr.append(Arr2[p2])
p2 += 1
p3 += 1
之后,您必须检查Arr1 或Arr2 的元素是否剩余并将剩余的值压入FinishArr
。
if p1<Arr1_Length:
while p1<Arr1_Length:
FinishArr.append(Arr1[p1])
p1 += 1
if p2<Arr2_Length:
while p2<Arr2_Length:
FinishArr.append(Arr2[p2])
p2 += 1
我遇到这个错误,我可以循环遍历一个数组,但我不知道该怎么做。但我尝试插入 0
而不是 p1
、p2
和 p3
。这奏效了。但是如果我运行这个代码。
这个程序做的事情是对两个数组进行排序,并按正确的顺序设置它们。
Arr2 = [2,5,6,8]
Arr1_Length = len(Arr1)
Arr2_Length = len(Arr2)
FinishArr_Length = Arr1_Length + Arr2_Length
FinishArr = []
p1 = 0
p2 = 0
p3 = 0
print(FinishArr)
print(FinishArr_Length)
print(Arr1[p1])
print(Arr2[p2])
while p3 < FinishArr_Length:
if Arr1[p1] < Arr2[p2]:
FinishArr.append(Arr1[p1])
p1 += 1
else:
FinishArr.append(Arr2[p2])
p2 += 1
p3 += 1
print(FinishArr)
我收到这个错误:
Traceback (most recent call last):
File "Test.py", line 21, in <module>
if Arr1[p1] < Arr2[p2]:
IndexError: list index out of range
您必须检查 p1 和 p2 是否不超过各自数组的长度:
while p1<Arr1_Length and p2<Arr2_Length:
if Arr1[p1] < Arr2[p2]:
FinishArr.append(Arr1[p1])
p1 += 1
else:
FinishArr.append(Arr2[p2])
p2 += 1
p3 += 1
之后,您必须检查Arr1 或Arr2 的元素是否剩余并将剩余的值压入FinishArr
。
if p1<Arr1_Length:
while p1<Arr1_Length:
FinishArr.append(Arr1[p1])
p1 += 1
if p2<Arr2_Length:
while p2<Arr2_Length:
FinishArr.append(Arr2[p2])
p2 += 1