Питхон

Листа разумевања у Питхону

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

За петљу у Питхону

Изјава фор петље у Питхону секвенцијално превлачи чланове било ког објекта, листе, низа итд. У поређењу са другим програмским језицима, његова синтакса је много чишћа и не захтева ручно дефинисање корака итерације и покретање итерације. Иако постоје начини да његово понашање буде исто као и други програмски језици (неће бити обрађени у овом чланку). Такође можете извршити одређену контролу над петљама користећи изразе попут цонтинуе, бреак, пасс итд. Испод је једноставан пример фор петље у Питхону:

за к у опсегу (10):
испис (к)

Горња петља фор ће исписати десет бројева који почињу од 0 и завршавају на 9.

Листа разумевања

Разумевање листе није ништа друго него стенографски / језгровит начин писања вишередних линија за петље у једнослојни израз. Пример разумевања листе у наставку створиће нову листу као [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] тако што ће у њу укључити све вредности „к“.

бројеви = [к за к у опсегу (10)]
испис (бројеви)

Имајте на уму да разумевање листе увек креира нову листу и не мења оригиналне итерабле који се користе у изразу. Типични израз за разумевање листе мора имати клаузулу „фор“ и може се пратити условним изјавама „иф“ и „елсе“. Без коришћења разумевања листе, горњи пример ће бити написан на следећи начин:

бројеви = []
за к у опсегу (10):
бројеви.додати (к)
испис (бројеви)

Перформансе и читљивост

Разумевање листе је брже него за петље. Међутим, уколико не поновите стотине хиљада ставки, нећете приметити значајна побољшања перформанси. Иако разумевање листе пружа концизан начин писања петљи, сложени изрази могу довести до лоше читљивости кода и повећане опширности. Важно је да код буде читљив, осим ако постизање максималних перформанси није апсолутна потреба вашег програма.

Пример: Коришћење синтаксе разумевања листе са речницима и скуповима

Питхон речник је колекција елемената дефинисаних у паровима кључ / вредност, док је скуп колекција јединствених вредности где дупликати нису дозвољени. Разумевања пописа могу се користити и са Питхон речницима и скуповима. Синтакса се мало разликује, уместо да израз замотате у квадратне заграде, сада ћете морати да користите витичасте заграде. Такође ћете добити нови речник / скуп објеката уместо нове листе.

дата = "цити": "нев иорк", "наме": "јохн дое"
форматтед_дата = к: в.наслов () за к, в у подацима.ставке ()
испис (форматтед_дата)

Горњи пример ће претворити вредности низа у велика слова и створити нови речник под називом „форматтед_дата“, чији ће излаз бити: 'цити': 'Нев Иорк', 'наме': 'Јохн Дое'. Такође можете да промените речник / поставите на месту наводећи постојећу променљиву речника на левој страни.

дата = "цити": "нев иорк", "наме": "јохн дое"
подаци = к: в.наслов () за к, в у подацима.ставке ()
испис (подаци)

Без коришћења разумевања речника, код би изгледао овако:

дата = "цити": "нев иорк", "наме": "јохн дое"
форматтед_дата =
за к, в у подацима.предмета ():
форматтед_дата [к] = в.наслов ()
испис (форматтед_дата)

Како у паровима не постоје парови кључ / вредност, разумевање скупа може се дефинисати на исти начин као и разумевање листе. Једина разлика је употреба коврџавих заграда.

Пример: Вишеструко за петље у разумевању листе

Горе поменути пример за разумевање листе је основни и користи једну изјаву „за“. Испод је пример који користи вишеструко за петље и условни израз „ако“.

придеви = ["Дисцо", "Еоан", "Фоцал", "Артфул"]
животиње = ["Динго", "Хермелин", "Фосса", "Беавер"]
кодна имена = [к + "" + и за к у придевима за и код животиња ако је и.започиње са (к [0])]
принт (кодна имена)

Код ће приказати ['Дисцо Динго', 'Еоан Хермине', 'Фоцал Фосса'] као излаз. Две фор петље прелазе листе „придева“ и „животиња“ и њихови чланови се спајају размаком, само ако су прво слово обе речи исте. Без употребе разумевања листе, код би изгледао овако:

придеви = ["Дисцо", "Еоан", "Фоцал", "Артфул"]
животиње = ["Динго", "Хермелин", "Фосса", "Беавер"]
кодна имена = []
за к у придевима:
за и код животиња:
ако је г.започиње са (к [0]):
кодна имена.додати (к + "" + и)
принт (кодна имена)

Пример: Наведите разумевање са клаузулом иф-елсе

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

нумбер_лист = [1, 2, 3, 4]
други_попис = [5, 6, 7, 8]
резултат = [Тачно ако (к + и)% 2 == 0 елсе Нетачно за к на броју_лист за и на другом_листу]
испис (резултат)

Прелиставајући две листе, претходно поимање списка проверава да ли је збир пара елемената паран или не. Покретање горњег кода приказаће вам [Труе, Фалсе, Труе, Фалсе, Фалсе, Труе, Фалсе, Труе, Труе, Фалсе, Труе, Фалсе, Фалсе, Труе, Фалсе, Труе] као излаз. Без коришћења разумевања листе, код би изгледао овако:

нумбер_лист = [1, 2, 3, 4]
други_попис = [5, 6, 7, 8]
резултат = []
за к на листи_бројева:
за и у анотхер_лист:
ако је (к + и)% 2 == 0:
резултат.додај (тачно)
иначе:
резултат.додати (нетачно)
испис (резултат)

Закључак

Разумевање листе пружа леп начин за писање чистих и концизних изјава петље. Међутим, они могу брзо постати сложени и тешко разумљиви ако се користе вишеструке петље и условни изрази. На крају, долази до нивоа комфора програмера, али генерално је добра идеја писати експлицитни, читљив и лак за отклањање грешака код, уместо да прекомерно користите скраћенице.

Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...
СуперТукКарт за Линук
СуперТукКарт је сјајан наслов дизајниран да вам пружи Марио Карт искуство бесплатно на вашем Линук систему. Прилично је изазовно и забавно играти, диз...
Водич за битку за Веснотх
Битка за Веснотх је једна од најпопуларнијих стратешких игара отвореног кода које тренутно можете играти. Не само да је ова игра у развоју већ јако ду...