列表索引超出范围

时间:2017-05-20 00:04:45

标签: python list

我在python中实现了quicksort

#QuickSort python

def sort(array):

    leftside = []
    rightside = []
    equal = []

    pivot = array[0]

    if (len(array)>1):
        for item in array:
            if item < pivot:
                leftside.append(item)
            if item > pivot:
                rightside.append(item)
            if item == pivot:
                equal.append(item)
    else:
        print array


    print sort(leftside) + equal + sort(rightside)

array = [1,2,5,4,6,2,3]
sort(array)

我收到错误   &#34; pivot = array [0] IndexError:列表索引超出范围&#34;,我在这段代码中看不到任何可能导致索引错误的内容。你能看一下吗?

1 个答案:

答案 0 :(得分:0)

pivot = array[0]应该在if (len(array)>1):。否则你可能会尝试在空数组上进行。

做了一些其他快速修复。看看它是如何工作的:

#QuickSort python

def sort(array):

    leftside = []
    rightside = []
    equal = []

    if (len(array)>1):
        pivot = array[0]
        for item in array:
            if item < pivot:
                leftside.append(item)
            if item > pivot:
                rightside.append(item)
            if item == pivot:
                equal.append(item)
        return sort(leftside) + equal + sort(rightside)
    else:
        return array


array = [1,2,5,4,6,2,3]
print(sort(array))