Skip to main content

Command Palette

Search for a command to run...

Understanding removing duplicates from a list

Updated
•1 min read•View as Markdown

Предлагаю решить задачу вместе: без спешки, с объяснением каждой строки.

Задача

Убрать из списка повторы, сохранив порядок первого появления элементов.

Решение

def unique(arr: list) -> list:
    seen = set()
    result = []
    for x in arr:
        if x not in seen:
            seen.add(x)
            result.append(x)
    return result


print(unique([1, 2, 2, 3, 1, 4]))

Как это работает

Множество seen отвечает за быструю проверку «встречался ли элемент», список result сохраняет порядок. Простое приведение к set() порядок бы не сохранило.

Пример работы

[1, 2, 3, 4]

Сложность

O(n) по времени и памяти.

Такой пример хорошо закрепляется практикой — перепишите решение руками и прогоните на своих тестах.

Читайте также:

элементов · Простое · работы · работает · вместе · unique(arr · каждой · встречался · тестах · сохранило · Такой · сохраняет · отвечает · закрепляется · хорошо · решить · проверку · задачу · пример · объяснением · списка

More from this blog

N

News

211 posts