使用python合并错误

使用python合并错误,python,python-2.7,merge,Python,Python 2.7,Merge,我是python新手。我曾尝试在Python中进行合并,但错误列表分配索引超出了范围。有人能帮我吗 A = [4,5,7,9,0,1,2,3] def merge(A,p,q,r): i = p j = q+1 k = 0 C = [] while i<=q and j<=r: if A[i]<A[j]: C[k] = A[i] i = i + 1 else

我是python新手。我曾尝试在Python中进行合并,但错误列表分配索引超出了范围。有人能帮我吗

A = [4,5,7,9,0,1,2,3]

def merge(A,p,q,r):
    i = p
    j = q+1
    k = 0
    C = []
    while i<=q and j<=r:
        if A[i]<A[j]:
            C[k] = A[i]
            i = i + 1
        else:
            C[k] = A[j]
            j = j + 1
        k = k + 1
    if i!=q:
        for z in range(i,q+1):
            C[k] = A[z]
            k = k + 1

    if j!=r:
        for z in range(j,r+1):
            C[k] = A[z]
            k = k + 1

merge(A,0,3,7)
A=[4,5,7,9,0,1,2,3]
def合并(A、p、q、r):
i=p
j=q+1
k=0
C=[]

正如@chisaycock所说,问题是C没有索引k,因此在检查之前,必须验证C的lenct是否等于或大于k

if len(C) > k:
... C[k]...

您已将
C
定义为零长度数组,因此对它的任何访问都将超出范围。