Megiya
@Megiya

Как сделать «умное» удаление элементов списка?

Добрый день! Сразу к делу.
Есть список - list
В этом списке, нужно постоянно удалять первые 4 элемента, пропускать 5 и удалять все остальные. К примеру
list = [0,0,0,0,1,1,1,1,1,0,0,0,0...]
Всегда есть первые четыре нуля, но вот после единиц, идут элементы, количество которых, посчитать невозможно, их нужно просто отрезать от списка, чтобы осталось
list = [1,1,1,1,1]
Потом, к этому списку добавиться ещё подобная конструкция
list = [1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0...]
И нужно будет удалить опять все нули. Я долго ломал голову над этой задачкой, поэтому написал сюда, чтобы вы помогли мне её решить. Проблема в том, что не обязательно всегда будет "0", может быть к примеру "2" а может "3", а может буква, тоже самое с один, то-есть нельзя привязываться к самим символам. Всё что я придумал, так это то, мы сохраняем количество элементов list, когда в нём только единицы, после чего, начиная с этого, удаляем нули, пропускаем пять элементов и уже после этого удаляем всё остальное, но вот как реализовать, я пока не придумал
  • Вопрос задан
  • 93 просмотра
Решения вопроса 2
axifive
@axifive
Software Engineer
Столько расписали лишнего, а вам нужно, всего лишь, выполнить срез списка:
list = list[4:9]
Ответ написан
@pcdesign
Когда идет такая пьянка, можно использовать enumerate, крутануть цикл, задать там кучу условий, какие вам нужны и получить результирующий список.

result_list = []
for n, el in enumerate(list):
    if n <= 3:
        continue
    # и здесь еще 100500 разных условий
    result_list.append(el)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы