замена элементов в списке по индексу. Python

Есть задание, в существующий список внести значения пользователя. Никак не получается это сделать. Должно быть циклом до тех пор пока пользователь не введет в поле индекс : "-1"

Cпасибо

Вот пример:

list=[1, 2, 3, 4, 5]

Введите индекс: 0

Введите значение: 10

[10, 2, 3, 4, 5]

Введите индекс: 2

Введите значение: 250

[10, 2, 250, 4, 5]

Введите индекс: -1

Моя попытка:

list=[1,2,3,4,5]
        
    for i in list:
        index=int(input("Введите индекс: "))
        arv=int(input("Введите значение: "))
        if index >= 0:
               list.insert(index, arv)
               print(list)
        if index<0:
            break  

Ответы (2 шт):

Автор решения: Violet
a = [1, 2, 3, 4, 5]

for i in a:
    index = int(input("Введите индекс: "))

    if index < 0:
        break
    else:
        arv = int(input("Введите значение: "))
        del a[index]
        a.insert(index, arv)
        print(a)
  • вместо list используем другое название переменной
  • явно укажем что -1 может быть меньше нуля
  • ввод arv перенесём после проверки индекса
  • сначала удалим значение по индексу
  • после добавим значение по индексу
→ Ссылка
Автор решения: Vetedde

Согласна с @Violet, что list необходимо заменить на другое имя переменной, например, a, т.к. list - зарезервированное слово.

Однако я бы использовала цикл while

a = [1, 2, 3, 4, 5]

while True:
    index = int(input("Введите индекс: "))

    if index < 0:
        break
    
    val = int(input("Введите значение: "))
    a[index] = val

Возможно имеет смысл проверять, чтобы индекс не выходил за границы массива:

a = [1, 2, 3, 4, 5]
l = len(a) # Длина массива
while True:
    index = int(input("Введите индекс: "))

    if index < 0:
        break
    
    if index >= l:
      print("Индекс выходит за границы массива")
      continue 

    val = int(input("Введите значение: "))
    a[index] = val
→ Ссылка