Найти - Пользователи
Полная версия: Удалить элемент
Начало » Центр помощи » Удалить элемент
1 2 3
FishHook
Вам надо одним циклом от к до конца пройтись по списку и если есть следующий элемент то присвоить его значение текущему иначе удалить.
Dorum
FishHook
Вот это вот зачем?
 for i in range(len(l)):
    if i == k:
Этим я выбираю элемент, начиная с которого буду двигать.

FishHook
Вот это вот зачем?
 l[a], l[a + 1] = l[a + 1], l[a]
Здесь же, собственно, меняю элементы местами.

Поясните свое “нахрена”.
Dorum
Dorum
FishHook
Вот это вот зачем?
 for i in range(len(l)):
    if i == k:
Этим я выбираю элемент, начиная с которого буду двигать.
Так-с, с этим вопросов нет. Понял. Действительно нет необходимости.
Dorum
Dorum
FishHook
Вот это вот зачем?
 l[a], l[a + 1] = l[a + 1], l[a]
Здесь же, собственно, меняю элементы местами.

Здесь же не улавливаю замечания. Это и есть корень моего решения.
FishHook
  
l = [0, 1, 2, 3, 4, 5, 6, 7, 8]
k = 3
for index in range(k, len(l)-1):
    l[index] = l[index+1]
l.pop()
print(l)

Вот ваше решение, оно реализуется один в один также как ставится задача, вообще не нужно фантазии.
ZerG
FishHook
В условии четко сказанно pop() с параметром использовать НЕЛЬЗЯ!
Другой список использвать НЕЛЬЗЯ
FishHook
ZerG
Ок, параметр убрал, он ни что не влияет. А другого списка тут нет.
Dorum
FishHook
   
l = [0, 1, 2, 3, 4, 5, 6, 7, 8]
k = 3
for index in range(k, len(l)-1):
    l[index] = l[index+1]
l.pop()
print(l)
Вот ваше решение, оно реализуется один в один также как ставится задача, вообще не нужно фантазии.
Я тщательно изучил Ваше решение. Спасибо за уделенное время.
Но в тоже время с Вами не соглашусь, ибо считаю, что оба решение как и мое, так и Ваше соответсвует условию, но работает по-разному.
Ваше решение на выходе возвращает:
 [0, 1, 2, 4, 4, 5, 6, 7, 8]
[0, 1, 2, 4, 5, 5, 6, 7, 8]
[0, 1, 2, 4, 5, 6, 6, 7, 8]
[0, 1, 2, 4, 5, 6, 7, 7, 8]
[0, 1, 2, 4, 5, 6, 7, 8, 8]
[0, 1, 2, 4, 5, 6, 7, 8]
И, собственно, удаляет элемент, который не соответсвует индексу k. В вашем случает индексу k соответствует 4, а удаляет он последний элемент, который равен 8.

Мой же код пошагово передвигает k-й элемент по списку и в конечном итоге его же и удаляет.
 l = []
while len(l) != 10:
    n = int(input("Введите 10 элементов списка = "))
    l.append(n)
print(l)
k = int(input("Индекс элемента, который будет удален = "))
for a in range(k, len(l) - 1):
    l[a], l[a + 1] = l[a + 1], l[a]
print(l)
print("Удаленный элемент = ", l.pop())
print("Конечный список:", l)

FishHook
Dorum
В вашем случает индекс k - это 4
нет, это 3, индексы начинаются с нуля

В вашем случает индекс k - это 4, а удаляет он последний элемент, который равен 8.
То ли я дурак?
Какого элемента не хватает?
 [0, 1, 2, 4, 5, 6, 7, 8]
FishHook
Мой же код пошагово передвигает k-й элемент по списку и в конечном итоге его же и удаляет.
Да делай ты что хочешь, бог с тобой.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB