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

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

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





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





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

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





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

инсталирајте Мац ОС на виртуелну машину

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



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

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





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

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





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

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

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

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

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

ComprehensionVariable = [expression for items in list]

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

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

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

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

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

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

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

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

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

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

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

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

someNums = [i*2 for i in range(1, 3) for k in range(4)]

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

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

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

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

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

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

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

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

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

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

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

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

Повезан: Како низови и листе функционишу у Питхону

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

стримујете филмове бесплатно на мрежи без регистрације
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

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

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

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

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

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

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

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

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

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

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

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

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

Кликните овде да бисте се претплатили