В этом материале мы спокойно и по шагам разберём учебную задачу на программирование.

Задача

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

Решение


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) по времени и памяти.

Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.

---

Related:

- Step-by-step: minimum and maximum of a list - ديوث يصور اخته وهي نايمة ويحسس طيزها - سكس محارم عربي - Daleseafoam OnlyFans Leaks – Exclusive Photo Gallery and Videos - Медленно и подробно: быстрая сортировка - Пошаговый разбор: проверка палиндрома - Magangz Adult Gallery – Furry NSFW Art and Male Anthro Scenes - https://paper.wf/almakrause84log/guan-xi-yuan-jiao-cheng-ren-tu-pian-yu-shi-pin-he-ji-liu-lan-ri-ben-guan-xi-nu-x - Частые ошибки при решении: проверка числа на простоту - سكس عراقي حديث - Two ways to solve computing an average - Пишем решение с тестами: решето Эратосфена - Xiao Moving Wallpaper | Genshin Impact Live Wallpapers - rebecca j fan bus porn - real amateur bus sex scenes - Несколько вариантов решения: наибольший общий делитель - аренда зала для тренинга киев - Типичные ошибки при решении: бинарный поиск - طب سكس - spip sarka-spip collectif sarka-spip gpl texte de votre message - Два способа решения: решето Эратосфена - Несколько вариантов решения: проверка анаграмм - سكس ريم المكاحيل