Прескочи на главни садржај
Основе Питхона2026-07-29 · 8 мин читања

Објашњено разумевање Питхон листе: када их користити, а када не (2026)

Разумевање листе је једна од најнесхваћенијих карактеристика Пајтона. Почетници их избегавају јер „изгледају компликовано“. Посредници их претерано користе све док сваки трећи ред не буде угнежђен у једном реду који нико не може да прочита. Овај водич поправља обе грешке.

Покрићемо: тачан троделни облик који следи свако разумевање листе, референтне вредности у односу на за / мапу / филтер, четири узорка која треба да препознате на видику и чврсто правило када треба престати коришћењем разумевања и уместо тога посегнути за обичном петљом.

Облик: [ шта | извор | филтер ]

Свако разумевање листе састоји се од три дела, овим редоследом:

▶ PYTHONeditable · runs in your browser

Читање наглас: "дајте ми `израз` за сваку `ставку` у `итерабле`, али само када је `услов` тачан."

Почните са еквивалентном петљом фор, а затим је скупите:

▶ PYTHONeditable · runs in your browser

Исти резултат — „[0, 4, 16, 36, 64]“. Разумевање је један ред, додељује листу унапред (без позива аппенд), а Питхон-ов компајлер бајткода емитује ЛИСТ_АППЕНД — брзу путању која прескаче тражење атрибута на .аппенд.

Референтни показатељ: разумевање вс фор-петље вс мапа+филтер

Прављење листе парних бројева на квадрат од 0 до 100.000:

| Метода | Време (µс) | Релативе |

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

| фор + .аппенд | 4,800 | 1,9× основна линија |

| лист(мапа(..., филтер(...))) | 3,200 | 1,3× основна линија |

| Разумевање листе | 2,500 | 1.0× (најбржи) |

Измерено на Питхон 3.13, једно покретање од 1000 итерација. Разумевање побеђује јер не постоји позив функције по елементу — израз је уметнут.

Речено је: немојте микрооптимизовати. За листу од 100 елемената, сва три се завршавају за мање од 100 µс. Прво изаберите читљивост.

Четири обрасца које треба да препознате

1. Трансформишите сваки елемент

▶ PYTHONeditable · runs in your browser

Замена за мапу(стр.наслов, имена), али не захтева преламање лист(...).

2. Филтрирајте без трансформације

▶ PYTHONeditable · runs in your browser

Чистији од лист(филтер(ламбда н: н > 0, бројеви)). Није потребна ламбда.

3. Филтрирајте И трансформишите

▶ PYTHONeditable · runs in your browser

Овде разумевање јасно надмашује алтернативе — покушајте да то напишете помоћу мапа + филтер и пребројите заграде.

4. Изравнајте угнежђену листу

▶ PYTHONeditable · runs in your browser

Редослед је важан: за ред у матрици се чита с лева на десно као еквивалентне угнежђене фор петље. Ово је једини образац где угнежђена разумевања остају читљива — за све дубље је потребна петља.

Када престати са разумевањем

Три строга правила, по важности:

1. Три или више клаузула „за“ → користите петљу. Троструко угнежђено разумевање је нечитљиво чак ни особи која га је написала пре 20 минута.

▶ PYTHONeditable · runs in your browser

2. Нежељени ефекти → користите петљу. Разумевања су за састављање листе. Ако позивате функцију због њених нежељених ефеката (писање у датотеку, слање захтева), користите петљу. [принт(к) фор к ин итемс] је мирис кода — правите листу за одбацивање `Ништа.

3. Израз је дужи од 60 знакова → раставите га. Ако треба да размишљате дуже од 3 секунде да бисте га рашчланили, поделите га у именовану функцију или петљу.

Дицт и сет разумевања — исти облик

Иста синтакса, различите заграде:

▶ PYTHONeditable · runs in your browser

Разумевање дикта је посебно корисно за инвертовање мапирања ({в: к за к, в у д.итемс()}) или за прављење табеле за тражење са листе.

Генератор израза — рођак прилагођен меморији

Испустите заграде, задржите заграде:

▶ PYTHONeditable · runs in your browser

За сум, мин, мак, било који, алл, ", ".јоин(...), и друге функције које се понављају једном, преферирају израз генератора — он чува алокацију средње листе. За све што треба да индексирате или поновите двапут, користите разумевање.

Вежбање: три вежбе

Препишите сваки користећи разумевање листе. Решења су на крају.

1. Дате речи = ["мачка", "слон", "пас", "нилски коњ"], добијте листу речи дужих од 4 знака, све великим словима.

2. Дати подаци = [{"наме": "Алице", "аге": 30}, {"наме": "Боб", "аге": 25}], издвојите листу само имена.

3. Дати парови = [(1, 2), (3, 4), (5, 6)], добијте листу збира сваког пара.

Решења:

▶ PYTHONeditable · runs in your browser

Разумевање листе је препознатљива карактеристика Пајтона — знати када треба посегнути за једном (а када је оставити као петљу фор) је поуздан маркер течности средњег нивоа. Вежбајте тако што ћете преписати постојеће фор + .аппенд петље које пронађете у сопственом коду; не треба свако да постане разумевање, али они који би требало да буду очигледни после недељу дана.

Следећи корак: пробајте 5 интерактивних лекција о разумевању листе са правим Питхон-ом који ради у вашем прегледачу и АИ ментором на сваком кораку.

Јесте ли спремни да пробате?

15 бесплатне лекције након бесплатне пријаве — без картице. Пробајте платформу, а затим одлучите.

Почните бесплатно →

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.