# Step-by-step: removing duplicates from a list

Пройдём задачу шаг за шагом — такой формат удобен для первого знакомства с алгоритмами.

## Задача

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

## Решение

```python
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()` порядок бы не сохранило.

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

```text
[1, 2, 3, 4]
```

## Сложность

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


## Разбор по шагам

1. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.

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

[разбор](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aleksandra-zubko-c54ff1.pdf) · [удобен](https://blog.spikyhair.club/oz20f30a/kaiser-x-isagi) · [происходит](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [каждой](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [изменениями](https://gallery62597.mataroa.blog/blog/pov-evening-sex-with-pregnant-wife/) · [соответствует](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/the-perfect-luv-tape-wallpaper-04ce61.pdf) · [seen.add(x](https://sway.cloud.microsoft/aLpBlNBwo3FAzogZ) · [Задача](https://ecency.com/@tomasruzick4961/wnru621526-391609) · [Именно](https://radicle.network/nodes/seed.pipapo.org/rad%3Az4JgdgkMpznf8C2Yvp3yC6rj5knWe/issues/4afda36c9daad57f688e9c35eac52ac184574424) · [Пройдём](https://gall.dcinside.com/mgallery/board/view/?id=nmixxreality&no=3550) · [return](https://rentry.co/jm600r-989458) · [Проверяем](https://docteur-radtchenko.fr/spip+sarka-spip+collectif+sarka-spip+gpl+texte+de+votre+message?f=instapaper) · [здесь](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [unique(arr](https://discuss.tchncs.de/post/65444744) · [список](https://blog.spikyhair.club/oz20f30a/31-vakti) · [шагам](https://writefreely.ethibox.fr/oz70cda8/bufalika) · [считаются](https://jamessproject.com/nuomibaby?f=linkcentre) · [времени](https://blogfreely.net/nathannazarov26/brainrot-rule-34) · [Убрать](https://marieroux757.overblog.fr/2026/10/ixtoz-com-ai-hentai-adult-videos-dating-site-info.html) · [случаи](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/2-8a2b2a.pdf) · [проверку](https://saminupss.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/eda-gokcen-kaya-52e17c.pdf) · [включая](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t-rbanl-porno-izle-e44454.pdf) · [приходит](https://news-ctl-posts.hashnode.dev/two-ways-to-solve-the-sieve-of-eratosthenes) · [способ](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/t33n-leak-invite-77a9ae.pdf) · [следим](https://paper.wf/sofia1973log/naomi-and-sergei-duo-dolcemodz-kvetinas-exclusive-set) · [мысленный](https://leahleroy990.overblog.fr/2026/10/the-bad-guys-jogos-porn-s-adultos-lewd-ninja.html) · [итерации](https://blog.spikyhair.club/oz20f30a/aidoldibpe) · [крайние](https://news-ctl-posts.hashnode.dev/pitfalls-of-bubble-sort)

