замена элементов в списке по индексу. 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