Удаление элементов, имеющих последовательные дубликатыPython

Программы на Python
Ответить
Anonymous
 Удаление элементов, имеющих последовательные дубликаты

Сообщение Anonymous »

Мне был любопытен вопрос: устранить последовательные дубликаты элементов списка и как это должно быть реализовано в Python.

Я придумал следующее:< /p>

Код: Выделить всё

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
Но это кажется неуклюжим и не питоническим, есть ли у вас более умный/элегантный/более эффективный способ реализовать это?

Подробнее здесь: https://stackoverflow.com/questions/573 ... duplicates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»