Форум сайта python.su
Вам надо одним циклом от к до конца пройтись по списку и если есть следующий элемент то присвоить его значение текущему иначе удалить.
Офлайн
FishHookЭтим я выбираю элемент, начиная с которого буду двигать.
Вот это вот зачем?for i in range(len(l)): if i == k:
FishHookЗдесь же, собственно, меняю элементы местами.
Вот это вот зачем?
l[a], l[a + 1] = l[a + 1], l[a]
Отредактировано Dorum (Дек. 1, 2016 12:29:07)
Офлайн
DorumТак-с, с этим вопросов нет. Понял. Действительно нет необходимости.
FishHook
Вот это вот зачем?
Этим я выбираю элемент, начиная с которого буду двигать.for i in range(len(l)): if i == k:
Офлайн
Dorum
FishHook
Вот это вот зачем?
Здесь же, собственно, меняю элементы местами.l[a], l[a + 1] = l[a + 1], l[a]
Офлайн
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)
Отредактировано FishHook (Дек. 1, 2016 13:38:21)
Офлайн
FishHook
В условии четко сказанно pop() с параметром использовать НЕЛЬЗЯ!
Другой список использвать НЕЛЬЗЯ
Офлайн
ZerG
Ок, параметр убрал, он ни что не влияет. А другого списка тут нет.
Отредактировано FishHook (Дек. 1, 2016 13:38:37)
Офлайн
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]
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)
Отредактировано Dorum (Дек. 1, 2016 18:07:16)
Офлайн
Dorumнет, это 3, индексы начинаются с нуля
В вашем случает индекс k - это 4
В вашем случает индекс k - это 4, а удаляет он последний элемент, который равен 8.То ли я дурак?
[0, 1, 2, 4, 5, 6, 7, 8]
Отредактировано FishHook (Дек. 1, 2016 18:10:37)
Офлайн
Мой же код пошагово передвигает k-й элемент по списку и в конечном итоге его же и удаляет.Да делай ты что хочешь, бог с тобой.
Офлайн