Python列表索引超出范围-算法

Python列表索引超出范围-算法,python,algorithm,mergesort,Python,Algorithm,Mergesort,我有一个错误,我可以循环一个数组,但我不知道该怎么做。但是我尝试插入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 pr

我有一个错误,我可以循环一个数组,但我不知道该怎么做。但是我尝试插入
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)
Arr2=[2,5,6,8]
Arr1_长度=长度(Arr1)
Arr2_长度=长度(Arr2)
饰面长度=Arr1\U长度+Arr2\U长度
FinishArr=[]
p1=0
p2=0
p3=0
打印(FinishArr)
打印(成品长度)
打印(Arr1[p1])
打印(Arr2[p2])
p3
我得到这个错误:

Traceback (most recent call last):
  File "Test.py", line 21, in <module>
    if Arr1[p1] < Arr2[p2]:
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“Test.py”,第21行,在
如果Arr1[p1]
您必须检查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
?也许你的
Arr1
是一个空白列表,你能告诉我
Arr1
里面是什么吗?如果你想对这两个
数组进行排序,你可以使用
sorted(Arr1)
,如果你想用merge对它们进行排序,你可以使用
sorted(Arr1+Arr2)
。谢谢。第二个例子是帮助。非常感谢
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