0

私の人生では、なぜこのエラーが発生するのかわかりません:

UnboundLocalError: local variable 'unsorted' referenced before assignment (while len(unsorted) > 0)

このコードについては、選択ソートの最適な実装ではないことも認識しています。

def selection_sort(arr):
    unsorted = arr[:]
    sorted_arr = []
    while len(unsorted) > 0:
        lowest = arr[0]
        lowest_index = 0
        for i in range(len(unsorted)):
            if arr[i] < lowest:
                lowest = arr[i]
                lowest_index = i

        sorted_arr.append(lowest)
        del(unsorted, lowest_index)
    return sorted_arr
4

2 に答える 2

7

次の理由により、このエラーが発生しています。

del(unsorted, lowest_index)

は 2 つの変数unsortedと を削除lowest_indexし、次のループ ターンでそれらを再度使用しようとしています。

于 2013-06-17T10:41:09.833 に答える