Почему я не могу удалить элемент из списка?

Мне нужно удалить все цифры больше той, что в списке, но ничего не происходит.

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, а не элемент списка.

Но при этом простого способа починить ваш код не существует, потому что удаление элементов из списка, по которому вы итерируетесь - не такая простая задача как кажется (съезжает нумерация элементов). Для выполнения этой задачи лучше всего генерировать новый список, фильтруя элементы списка по условию. Примеров кода на этом сайте поиском полно можно найти, подобная задача много раз обсуждалась.

→ Ссылка