Почему я не могу удалить элемент из списка?
Мне нужно удалить все цифры больше той, что в списке, но ничего не происходит.
numbers = [n for n in range(a+1)]
number = [50]
for n in numbers:
if n > number[-1]:
del n
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
Для приведённого начального списка достаточно сделать срез
a = 8
numbers = [n for n in range(a+1)]
number = 5
numbers = numbers[:number+1]
print(numbers)
Автор решения: CrazyElf
→ Ссылка
Короткий ответ: потому что вы удаляете переменную n, а не элемент списка.
Но при этом простого способа починить ваш код не существует, потому что удаление элементов из списка, по которому вы итерируетесь - не такая простая задача как кажется (съезжает нумерация элементов). Для выполнения этой задачи лучше всего генерировать новый список, фильтруя элементы списка по условию. Примеров кода на этом сайте поиском полно можно найти, подобная задача много раз обсуждалась.