无参考局部变量?但我可以把它打印出来

2024-03-28 23:56:55 发布

您现在位置:Python中文网/ 问答频道 /正文

为了我的生命,我不明白为什么我会犯这样的错误:

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

Tags: indexlenlocal错误variablesortedarrassignment
2条回答

出现此错误是因为:

del(unsorted, lowest_index)

删除两个变量unsortedlowest_index,然后在下一个循环回合中,再次尝试使用它们。你知道吗

del (unsorted, lowest_index)删除未排序和最低的索引。如果您试图删除未排序do中的元素最低\u索引:

del unsorted[lowest_index]

相关问题 更多 >