Avatar ·

Удалить элементы списка по условию

📁 метод, список, python

Есть список

lst = [0, 95, 0, 76, 0, 23, 68, 0, 23, 156, 95]

Требуется удалить каждый элемент, следующий за 0

чтобы получить на выходе:

new_lst = [0,0,0,68,0,156,95]

Метод str.index() не помогает мне, так как возвращает только первое совпадение, а c enumerate пока не получается.

Avatar ·
lst = [0, 95, 0, 76, 0, 23, 68, 0, 23, 156, 95]# Поскольку перед первым элементом # нет ничего (и нуля в том числе, что соответствует условию), # то он добавляется в любом случае.# К тому-же при i == 0, i - 1 == -1 исключения не будет,# так-как элемент с индексом -1 присутствует в списке,# это последний элемент списка # Через циклnew_list = []for i in range(len(lst)):    if i == 0 or lst[i - 1] != 0:        new_list.append(lst[i])print(new_list)# Через генераторprint([lst[i] for i in range(len(lst)) if i == 0 or lst[i - 1] != 0])

Войдите чтобы оставить ответ

Блоги