Почему код выдаёт ошибку «list assignment index out of range»?

Решил посмотреть как можно сделать сортировщик массивов на python. Нашёл программу, разобрался в ней, но вот интегрировать с другим кодом не получается, тогда начал частично переносить код в этот. После переноса создания массива вылезает ошибка "list assignment index out of range". Что делать?
Сам код:
def quicksort(array):
    if len(array) < 2:#Базовый случай: массивы с 0 и 1 элементом уже отсортированы
        return array
    else:
        pivot=array[0]#Рекурсивный Случай
        #print("Опорный элемент pivot --> ",pivot)
        less = [i for i in array[1:] if i <= pivot]#Подмассив всех элементов, меньших опорного
        #print("Меньших опорного --> less",less)
        greater = [i for i in array[1:] if i > pivot]#Подмассив всех элементов, больших опорного
        #print("Больших опорного --> greter",greater)
        return quicksort(less) + [pivot] + quicksort(greater)


i = 0
n = int(input('Введите кол-во чисел для сортировки: '))
A = [n]
for i in range(0,n) :
    i = int(i)
    A[i]=input('Введите число: ')
    i+=1
print(quicksort(A))
  • Вопрос задан
  • 25867 просмотров
Решения вопроса 1
NeiroNx
@NeiroNx
Программист
A[i]= используется для существующих членов листа, если i за пределами длинны это вызывает ошибку
n = int(input('Введите кол-во чисел для сортировки: '))
A = [n]
A += [int(input('Введите число A[%d] = '%(i+1))) for i in range(0,n)]
print(quicksort(A))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы