• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Как в этих двух примерах происходит удаление элементов не понятна работа кода на Python.

Ali_Pythonist

Member
21.02.2024
14
0
BIT
101
Этот пример работает так как от него ожидается и удаляет элементы так что в списке остаётся только такие числа [1, 3, 5, 7, 9].
Python:
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
i = 1

while i < len(arr):
    arr.remove(arr[i])
    i += 1

print(arr)

А вот почему этот код работает не так как ожидалось в первом примере мне не понятно результат этого кода будет таким [6, 7, 8, 9, 10].
Python:
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
i = 1
while i < len(arr):
    arr.remove(arr)
i += 1
print(arr)

И лично мне не понятно почему тут происходит удаление чисел именно до 6. (Если что то я в курсе что в место arr.remove можно использовать arr.pop(i) но я хотел бы понять почему это происходит именно с функцией remove подскажите кто знает как в этом случае происходит движение указателя ChatGPT ПРОБОВАЛ ОН НЕ МОЖЕТ ОТВЕТИТЬ НА ЭТО )[/I]
 
Последнее редактирование модератором:

AtomXvX

Green Team
07.05.2020
15
6
BIT
161
Стоп что... Как у тебя вообще это выдаёт какой либо результат?
Функция remove удаляет первый совпавший элемент из массива и работает не по индексации, а именно по совпадению элемента.
И из этой строчки arr.remove(arr) следует что ты пытаешься удалить элемент из массива соответсвующий самому массиву.
фото результата компиляции этих двух программ во вложении.
Вот подробнее про функцию remove -

p.s. советик, не забывай проставлять табуляцию в коде или вставляй фото кода. Просто если в твоём вопросе был бы код посложнее, то разобраться в этой мутотене было бы проблематично, а для питона табуляция как библия.
1708646882865.png
 

f22

Codeby Academy
Gold Team
05.05.2019
1 928
226
BIT
1 696
А вот почему этот код работает не так как ожидалось в первом примере мне не понятно результат этого кода будет таким [6, 7, 8, 9, 10].
Попробуйте правильно скопировать код, с учётом отступов и без форматирования.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!