Avatar ·

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

📁 пример

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

Avatar ·

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

Войдите чтобы оставить ответ

Блоги