【问题标题】:Merge using python error使用python错误合并
【发布时间】:2014-07-08 16:18:45
【问题描述】:

我是 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)

【问题讨论】:

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

标签: python python-2.7 merge


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 2016-03-17
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多