Sobes.tech
Middle

Wie entfernt man Elemente aus einer Liste in einer Schleife?

sobes.tech KI

Antwort von AI

Удалять элементы из списка во время итерации по нему напрямую опасно, так как это может привести к пропуску элементов или ошибкам индексации. Чтобы корректно удалить элементы, можно:

  1. Итерация по копии списка и удаление из оригинала:
lst = [1, 2, 3, 4, 5]
for item in lst[:]:  # копия списка
    if item % 2 == 0:
        lst.remove(item)
print(lst)  # [1, 3, 5]
  1. Использовать генератор списков для создания нового списка без ненужных элементов:
lst = [1, 2, 3, 4, 5]
lst = [x for x in lst if x % 2 != 0]
print(lst)  # [1, 3, 5]
  1. Итерация в обратном порядке по индексам (если нужен именно in-place):
lst = [1, 2, 3, 4, 5]
for i in range(len(lst) - 1, -1, -1):
    if lst[i] % 2 == 0:
        del lst[i]
print(lst)  # [1, 3, 5]

Выбор метода зависит от задачи и требований к производительности.