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

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

Шта је разумевање листе у Питхону и како то функционише?

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

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

Супротно томе, он ствара нове ставке и додаје их празној листи коју аутоматски декларише. Дакле, уместо да ручно правите празну листу и додајете је помоћу за лооп, разумевање Питхон-ове листе вам омогућава да то учините аутоматски, а да се не мучите око тога како нова листа пролази.

Термин „разумевање листе“ потиче из чињенице да су све операције на Питхон листи додељеној именованој променљивој. Као што смо раније навели, омогућава вам извођење одређених операција у једном реду кода. Затим додаје излаз на нову листу.

На крају, излаз разумевања листе можете користити и у друге сврхе. То је зато што слаже изразе у одвојене променљиве. Тако да се на њих можете позвати касније.

На пример, можда јесте стругање веб странице помоћу БеаутифулСоуп-а. Претпоставимо да намеравате да добијете назив свих предмета и њихове цене са веб локације.

Затим одлучите да ставите изгребане податке у ЦСВ или Екцел датотеку. Идеална пракса је брисање имена свих предмета и њихових цена и стављање оба у посебне колоне. Међутим, коришћење разумевања листе, у том случају, осигурава да имате стругане податке у наменским променљивим. Тада такве променљиве можете касније претворити у Питхон ДатаФраме.

Погледајте пример испод:

Производи = [и.тект за и у бс.финд_алл ('ознаке имена')]
Цена = [и.тект за и у бс.финд_алл ('ознаке са ценама')]

Једном када добијете петље променљиве, можете их ставити у засебне колоне у ДатаФраме користећи Питхон-ове Панде.

Како створити и користити разумевање листе у Питхону

Тхе за лооп је основни итератор у разумевању листе. Генерално, разумевање листе у Питхону има овај формат:

ЦомпрехенсионВариабле = [израз за ставке на листи]

Штампање ЦомпрехенсионВариабле даје резултат горњег кода као листу.

Међутим, припазите да не помешате разумевање листе са отвореним за петља.

На пример, хајде користите петљу опен фор да бисте добили листу свих вишекратника од три између 1 и 30:

миЛист = []
за и у опсегу (1, 11):
миЛист.аппенд (и * 3)
принт (миЛист)
Излаз: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Да бисмо упоредили та два, учинимо исту ствар користећи разумевање листе:

мултиплесОф3 = [и * 3 за и у опсегу (1, 11)]
принт (мултиплесОф3)
Излаз = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Разумевање листе можете користити и са условним исказима. Пример доле приказује све непарне бројеве између 1 и 10:

оддНумберс = [и за и у опсегу (1, 11) ако није и% 2 == 2]
испис (непарни бројеви)
Излаз = [1, 3, 5, 7, 9]

Сада, хајде да препишемо и горњи код користећи опен за петља:

миЛист = []
за и у опсегу (1, 11):
ако не, и% 2 == 0:
миЛист.аппенд (и)
принт (миЛист)
Излаз: [1, 3, 5, 7, 9]

Повезан: Како додати листу у Питхон-у

Разумевање листе такође прихвата угнеждене наредбе иф:

оддНумберс = [и за и у опсегу (1, 11) ако није и% 2 == 0 ако је и <4]
испис (непарни бројеви)
Излаз: [1, 3]

Потребно је и угнежђено за петља:

сомеНумс = [[и * 2 за и у опсегу (1, 3)] за _ у опсегу (4)]
испис (некиБројеви)

Такође можете имати и обично угнежђено за петља у разумевању листе:

сомеНумс = [и * 2 за и у опсегу (1, 3) за к у опсегу (4)]

Са стринговима можете манипулисати и разумевањем Питхон листе. Погледајмо разумевање бројача речи у наставку:

ворд = ["Ово је туториал за разумевање листе питхон-а"]
вордЦоунтер = [и.број ('') + 1 за и у речи]
принт (вордЦоунтер)
Излаз: 7

Разумевање листе такође може прихватити функцију која изводи одређену операцију. Убацимо функцију множитеља која добија парне бројеве у разумевању листе да бисмо видели како ово функционише:

Бројеви = [4, 7, 8, 15, 17, 10]
деф мултипликатор (н):
вишеструко = н * 2
врати вишеструко
мултиплеЕвен = [множилац (и) за и у Бројевима ако је и% 2 == 0]
принт (мултиплеЕвен)
Излаз: [8, 16, 20]

И даље можете написати горњи код у једну функцију без употребе разумевања. Али разумевање листе је корисно када требате извршити неколико итерација и сваку од њих сместити у посебне променљиве.

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

мултиплеЕвенФромОддс = [множилац (и) за и у Бројевима ако не и% 2 == 0]
испис (мултиплеЕвенФромОддс)
Излаз: [14, 30, 34]

Речник и поставите разумевања

Поред разумевања листе, Питхон такође нуди речник и скуп функција за разумевање.

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

одговара = {и: и * 2 за и у опсегу (10) ако није и% 2 == 0}
принт (испрати)
Излаз: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Горњи код се креће кроз листу бројева између 1 и 9 и чини их кључевима. Тада Питхону говори да сваки кључ помножи са два. На крају, представља резултате те операције као одговарајуће вредности за сваки кључ у резултујућем низу.

Повезан: Како низови и листе раде у Питхону

Скупљено разумевање је помало слично схватању листе. Ево примера скупа разумевања:

бројеви = {и ** (2) за и у опсегу (10) ако је и% 4 == 0}
испис (бројеви)
Излаз: {0, 16, 64}

Међутим, за разлику од разумевања листе, скупо разумевање уклања дупликате:

нумс = {и за и у опсегу (20) ако је и% 2 == 1 за к у опсегу (10) ако је к% 2 == 1}
испис (бројеви)
Излаз: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Можете испробати горњи код користећи разумевање листе да бисте видели како се разликују.

Можете ли сваки пут да користите разумевање листе?

Погледали смо различите примере разумевања списка и где их можете користити. Међутим, као и било која друга метода Питхон, случај употребе разумевања листе зависи од конкретног проблема који желите да решите. Стога бисте га требали користити само ако је идеалан за одређени проблем који желите да решите.

Једна од сврха разумевања листе је да поједностави ваш код и учини га читљивијим. Пазите да избегавате сложеност када се бавите тим проблемом. На пример, дуго разумевање Питхона може постати сложено за читање. То поништава његову сврху.

Емаил
Како се користи разумевање Питхон листе (и када их не треба користити)

Ево свега што треба да знате о коришћењу ове невероватне особине Питхона која ће повећати вашу продуктивност и читљивост кода преко ноћи.

Повезане теме
  • Програмирање
  • Питхон
О аутору
Идову Омисола (55 чланака објављено)

Идову је заљубљен у све паметне технологије и продуктивност. У слободно време игра се са кодирањем и пребацује се на шаховску таблу кад му је досадно, али такође воли да се повремено отргне од рутине. Његова страст да људима покаже пут око модерне технологије мотивише га да пише више.

Још од Идову Омисола

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.