аватар question@mail.ru · 01.01.1970 03:00

Удаление одинаковых элементов в отсортированном листе (списке)

Например, у меня есть лист x = [a, a, a, f, h, k, k]. Мне надо сделать, что бы в этом листе было только одно a и одно k, т.е. удалить лишние похожие элементы, остальные не трогать. Похожие элементы всегда рядом, т.к. лист просортирован. Как реализовать удаление этих лишних элементов?

аватар 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 не гарантирует сохранения порядка.

Последние

Похожие