Учитывая список Python, я хочу удалить последовательные "дубликаты". Однако повторяющееся значение является атрибутом элемента списка (в этом примере это первый элемент tuple
).
Входные данные:
[(1, 'a'), (2, 'b'), (2, 'b'), (2, 'c'), (3, 'd'), (2, 'e')]
Желаемый результат:
[(1, 'a'), (2, 'b'), (3, 'd'), (2, 'e')]
Невозможно использовать set
или dict
, потому что порядок важен.
Невозможно использовать понимание списка [x for x in somelist if not determine(x)]
, потому что проверка зависит от предшественника.
Что я хочу, это что-то вроде:
mylist = [...]
for i in range(len(mylist)):
if mylist[i-1].attr == mylist[i].attr:
mylist.remove(i)
Каков предпочтительный способ решить эту проблему в Python?