как:
любопытен по поводу вопроса:Устранить последовательные дубликаты элементов спискаи как это должно быть реализовано в Python.
Я придумал вот что:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
else:
i = i+1
Выход:
[1, 2, 3, 4, 5, 1, 2]
Что я думаю, это нормально.
Так что мне стало любопытно, и я хотел посмотреть, смогу ли я удалитьэлементы которые имели последовательные дубликаты и получают этот вывод:
[2, 3, 5, 1, 2]
Для этого я сделал это:
list = [1,1,1,1,1,1,2,3,4,4,5,1,2]
i = 0
dupe = False
while i < len(list)-1:
if list[i] == list[i+1]:
del list[i]
dupe = True
elif dupe:
del list[i]
dupe = False
else:
i += 1
Но это кажется неуклюжим и не пифоническим, есть ли у вас какой-нибудь умный / более элегантный / более эффективный способ реализовать это?