Przejdź do treści głównej
Podstawy Pythona2026-07-29 · 8 min czytania

Wyjaśnienie pojęć list w języku Python: kiedy ich używać, a kiedy nie (2026)

Rozumienie list to jedna z najbardziej niezrozumiałych funkcji Pythona. Początkujący unikają ich, ponieważ „wyglądają na skomplikowane”. Półprodukty nadużywają ich, aż co trzeci wiersz jest zagnieżdżoną linijką, której nikt nie może przeczytać. Ten samouczek naprawia oba błędy.

Omówimy: dokładny trzyczęściowy kształt, po którym następuje każde rozumienie listy, testy porównawcze vs „dla” / „mapa” / „filtr”, cztery wzorce, które powinieneś rozpoznać od razu, oraz twardą zasadę określającą, kiedy przestać używać wyrażeń i zamiast tego sięgnąć po zwykłą pętlę.

Kształt: [ co | źródło | filtr]

Każde rozumienie list składa się z trzech części, w następującej kolejności:

▶ PYTHONeditable · runs in your browser

Czytanie na głos: ”podaj mi „wyrażenie” dla każdego „elementu” w „iterowalnym”, ale tylko wtedy, gdy „warunek” jest prawdziwy.”

Zacznij od równoważnej pętli „for”, a następnie zwiń ją:

▶ PYTHONeditable · runs in your browser

Ten sam wynik — [0, 4, 16, 36, 64]. Rozumienie zajmuje jedną linię, przydziela listę z góry (bez wywołań „append”), a kompilator kodu bajtowego Pythona emituje LIST_APPEND — szybką ścieżkę, która pomija wyszukiwanie atrybutów w .append.

Test porównawczy: zrozumienie vs pętla for vs mapa+filtr

Tworzenie listy kwadratów liczb parzystych od 0 do 100 000:

| Metoda | Czas (µs) | Względny |

|---|---|---|

| dla + .dołącz | 4800 | 1,9× wartość bazowa |

| list(mapa(..., filtr(...))) | 3200 | 1,3× wartość podstawowa |

| Rozumienie listy | 2500 | 1,0× (najszybszy) |

Zmierzone w Pythonie 3.13, pojedyncze uruchomienie 1000 iteracji. Zrozumienia wygrywają, ponieważ nie ma wywołania funkcji dla poszczególnych elementów — wyrażenie jest wbudowane.

To powiedziawszy: nie mikrooptymalizuj. W przypadku listy składającej się ze 100 elementów wszystkie trzy kończą się w czasie poniżej 100 µs. Najpierw wybierz czytelność.

Cztery wzorce, które powinieneś rozpoznać

1. Przekształć każdy element

▶ PYTHONeditable · runs in your browser

Wpuszczany zamiennik map(str.title,names), ale nie wymaga zawijania list(...).

2. Filtruj bez przekształcania

▶ PYTHONeditable · runs in your browser

Czystsze niż list(filter(lambda n: n > 0, liczby)). Nie potrzeba „lambdy”.

3. Filtruj ORAZ przekształcaj

▶ PYTHONeditable · runs in your browser

W tym miejscu wyrażenia wyraźnie przewyższają alternatywy — spróbuj napisać to za pomocą map + filter i policz nawiasy.

4. Spłaszcz zagnieżdżoną listę

▶ PYTHONeditable · runs in your browser

Kolejność ma znaczenie: „for wiersz w macierzy” czyta się od lewej do prawej, jak odpowiednik zagnieżdżonych pętli „for”. Jest to jedyny wzorzec, w którym zagnieżdżone wyrażenia pozostają czytelne — wszystko, co jest głębsze, wymaga pętli.

Kiedy PRZESTAĆ używać wyrażeń

Trzy twarde zasady, w kolejności ważności:

1. Trzy lub więcej klauzul „for” → użyj pętli. Potrójnie zagnieżdżone zrozumienie jest nieczytelne nawet dla osoby, która napisała je 20 minut temu.

▶ PYTHONeditable · runs in your browser

2. Skutki uboczne → użyj pętli. Zrozumienia służą do budowania listy. Jeśli wywołujesz funkcję ze względu na jej skutki uboczne (zapisywanie do pliku, wysyłanie żądania), użyj pętli. [print(x) for x in items] to zapach kodu — tworzysz jednorazową listę „Żadnych”.

3. Wyrażenie jest dłuższe niż 60 znaków → podziel je. Jeśli musisz pomyśleć dłużej niż 3 sekundy, aby je przeanalizować, podziel je na nazwaną funkcję lub pętlę.

Dyktuj i ustawiaj wyrażenia — ten sam kształt

Ta sama składnia, różne nawiasy:

▶ PYTHONeditable · runs in your browser

Zrozumienia słownikowe są szczególnie przydatne do odwracania mapowania ({v: k dla k, v w d.items()}) lub tworzenia tabeli przeglądowej z listy.

Wyrażenia generatora — kuzyn przyjazny pamięci

Usuń nawiasy, zachowaj nawiasy:

▶ PYTHONeditable · runs in your browser

Dla suma, min, max, any, all, ", ".join(...) i innych funkcji, które wykonują jednorazową iterację, preferuj wyrażenie generatora — zapisuje ono pośrednią alokację listy. W przypadku wszystkiego, co musisz zaindeksować lub powtórzyć dwukrotnie, użyj zrozumienia.

Ćwicz: trzy ćwiczenia

Przepisz każdy z nich, używając rozumienia listowego. Rozwiązania są na końcu.

1. Biorąc pod uwagę words = ["kot", "słoń", "pies", "hipopotam"], uzyskaj listę słów dłuższych niż 4 znaki, wszystkie pisane wielkimi literami.

2. Biorąc pod uwagę data = [{"imię": "Alice", "wiek": 30}, {"imię": "Bob", "wiek": 25}], wyodrębnij listę samych imion.

3. Biorąc pod uwagę `pary = [(1, 2), (3, 4), (5, 6)]', uzyskaj listę sum każdej pary.

Rozwiązania:

▶ PYTHONeditable · runs in your browser

Rozumienie list to charakterystyczna cecha Pythona — wiedza, kiedy po nią sięgnąć (a kiedy zostawić ją jako pętlę „for”) jest niezawodnym wyznacznikiem płynności na poziomie średniozaawansowanym. Poćwicz, przepisując istniejące pętle for + .append, które znajdziesz we własnym kodzie; nie każdy powinien stać się zrozumieniem, ale te, które powinny, po tygodniu staną się oczywiste.

Następny krok: wypróbuj 5 interaktywnych lekcji na temat rozumienia list z prawdziwym Pythonem uruchomionym w przeglądarce i mentorem AI na każdym kroku.

Gotowy, aby spróbować?

15 lekcji gratis po darmowej rejestracji – bez karty. Wypróbuj platformę i podejmij decyzję.

Zacznij bezpłatnie →

Or unlock every lesson

Pro — $12/mo, unlimited AI, cancel any time. Refund within 14 days worldwide.

See Pro plans →

Get one Python lesson + one career idea every Friday

No spam, no "buy our course now". Three bullets, every Friday. Unsubscribe with one click.