Удалить из списка все уникальные элементы с шагом 2 и предшествующий уникальному элемент Python

Есть список list1 = [1, [], 2, [1, 2], 3, [1, 2], 4, [3, 4, 5], 5, [], 6, [1, 2], 7, [1, 2, 3, 4, 5], 8, [1]], нужно удалить из списка все уникальные элементы начиная с list1[1] с шагом 2 + предшествующий уникальному элемент. Т.е. должен получиться список list2 = [1, [], 2, [1, 2], 3, [1, 2], 5, [], 6, [1, 2]]. Подскажите, пожалуйста, как быстро это сделать на python, может есть какие-нибудь функции в библиотеках?


Ответы (1 шт):

Автор решения: karvetskiy

Как вариант:

list1 = ... # консоль или сразу задается
list2 = list1.copy()
i = 1
while(i <= len(list1)):
    if list1.count(list1[i]) == 1:
        list2.remove(list2[i])
        list2.remove(list2[i-1])
        i += 2
print(list2)
→ Ссылка