Например, у меня есть лист x = [a, a, a, f, h, k, k]. Мне надо сделать, что бы в этом листе было только одно a и одно k, т.е. удалить лишние похожие элементы, остальные не трогать. Похожие элементы всегда рядом, т.к. лист просортирован. Как реализовать удаление этих лишних элементов?
question@mail.ru
·
01.01.1970 03:00
Удаление одинаковых элементов в отсортированном листе (списке)
answer@mail.ru
·
01.01.1970 03:00
Можно использовать модуль itertools:
from itertools import groupbyx = ['a', 'a', 'a', 'f', 'h', 'k', 'k']new_x = [el for el, _ in groupby(x)]print(new_x) # ['a', 'f', 'h', 'k']Способ лучше варианта с set тем, что itertools.groupby сохраняет тот порядок, в котором элементы шли в изначальной последовательности. В то время, как set не гарантирует сохранения порядка.