Выброс индекса за пределы диапазона во время операции pop в списке PythonPython

Программы на Python
Anonymous
Выброс индекса за пределы диапазона во время операции pop в списке Python

Сообщение Anonymous »

Я пытаюсь отсортировать в списке только положительные целые числа и вставить их перед отрицательными целыми числами и нулем, если таковые имеются. Я не хочу менять порядок отрицательных/нулевых элементов.
Это код, который я пишу, но он выдает ошибку индекса, когда я пытаюсь удалить положительные элементы из исходный список, как только положительные результаты будут отсортированы в другом списке.

Код: Выделить всё

enter code here #sortonlypositivenumbers
def solve(n, nums):
positive = []
for i in range(n):
if nums[i] > 0:
positive.append(nums[i])
positive.sort()
for i in range(n):
if nums[i] > 0:
nums.pop(i)
nums = positive + nums
return nums

arr = list(map(int, input("Enter array separated by spaces.").split()))
length = len(arr)
print(solve(length, arr))
Вывод показывает: IndexError: индекс списка выходит за пределы диапазона для оператора if nums>0 в секунду для цикла

Подробнее здесь: https://stackoverflow.com/questions/789 ... ython-list

Вернуться в «Python»