Разумевање листе у Питхон-у – са примерима

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

Њихова сажета синтакса вам омогућава да креирате нове листе у само једном реду кода. И овај водич ће вас научити како то можете учинити.

У наредних неколико минута научићете:

  • Како направити нову листу користећи фор петље,
  • Синтакса за коришћење разумевања листе у Питхон-у и
  • Како модификовати разумевање листе са условном наредбом иф.

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

Хајде да заронимо.🌊

Како креирати Питхон листе користећи фор петље

Претпоставимо да имате списак бројева бројева. И желите да направите још једну листу која садржи коцку свих бројева у бројевима. Ево како ћете то урадити користећи фор петљу у Питхон-у:

nums = [2,3,5,7]
num_cubes = []
for num in nums:
  num_cubes.append(num**3)

print(num_cubes)

# Output
[8, 27, 125, 343]

У горњем коду имамо следеће кораке:

  • Иницијализујте празну листу нум_цубес.
  • Прођите кроз листу бројева.
  • Приступите сваком броју нум и израчунајте његову коцку користећи оператор експоненције: нум**3.
  • На крају, додајте коцкасту вредност листи нум_цубес

Напомена: У Питхон-у, оператор експоненцијације ** се користи са синтаксом: нум**пов—број нум се подиже на степен пов.

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

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

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

<new_list> = [<expression> for <item> in <iterable>]

Хајде да рашчланимо горњу синтаксу.

  • У Питхон-у, листе су раздвојене паром угластих заграда []— стога морате да приложите изјаву о разумевању листе унутар [].
  • <итем> у <итерабле> означава да се крећете кроз итерабле. Сваки Питхон објекат кроз који можете да прођете кроз петљу и да приступите појединачним ставкама—као што су листе, тупле и стрингови су итерабле.
  • <израз> је излаз који желите да израчунате за сваки <итем> у <итерабле>.

А ово звучи једноставно, зар не?

У суштини, желели бисте да урадите нешто за све ставке на листи (или било који итерабле) да бисте добили нову листу.

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

Синтакса разумевања листе Питхон-а (слика аутора)

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

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

У претходном одељку, креирали сте нову листу нум_цубес од нумс. Почнимо тако што ћемо то преписати користећи разумевање листе.

Коришћење разумевања листе са бројевима

Сада користимо поједностављену синтаксу на следећи начин:

  • <уради-ово>: Овде морате да изрежите на коцку сваки број. Зато замените <уради-ово> са нум**3.
  • <све ставке>: Променљива петље је нум—појединачни бројеви на листи.
  • <ова-листа>: Постојећа листа коју имамо је нумс.
  • И [num**3 for num in nums] је коначни израз. ✅

Стављајући све заједно, имамо следећи исечак кода:

num_cubes = [num**3 for num in nums]
print(num_cubes)

# Output
[8, 27, 125, 343]

Честитамо, кодирали сте своје прво разумевање листе.🎉

Идемо даље, хајде да радимо са Питхон стринговима.

Коришћење разумевања листе са стринговима

Претпоставимо да имате списак аутора — можете поново написати листу са својим омиљеним ауторима.😄

authors = ["jane austen","george orwell","james clear","cal newport"]

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

Напомена: У Питхон-у, метода стринга наслов() прихвата стринг као аргумент и враћа копију стринга форматирану у великом слову. Односно, прво слово сваке речи је велико: Име Презиме

Дакле, ево свега што треба да урадите:

  • проћи кроз листу аутора и за сваког аутора на листи,
  • позовите аутхор.титле() да бисте добили копију стринга у наслову.

А Питхон код за ово је приказан испод:

authors = ["jane austen","george orwell","james clear","cal newport"]

author_list = [author.title() for author in authors]
print(author_list)

# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']

У горњем излазу, посматрајте како су имена свих аутора форматирана у великим словима – што смо желели.

Коришћење разумевања листе са више листа

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

На пример, размотрите овај проблем: имате две листе л_арр и б_арр које садрже дужине и ширине 4 правоугаоника.

И потребно је да направите нову област листе која укључује површину ова 4 правоугаоника. Запамтите, површина = дужина * ширина.

l_arr = [4,5,1,3]
b_arr = [2,1,7,9]

Биће вам потребни елементи са обе листе (л_арр и б_арр) да бисте израчунали површину. А то можете учинити користећи Питхон-ову зип() функцију.

Напомена: У Питхон-у, функција зип() узима један или више итерабле-а као аргументе са синтаксом зип(*итераблес). Затим враћа итератор торки, где торка и садржи елемент и из сваког од итерабле.

Следећа слика то детаљно описује. Имате 4 вредности у л_арр и б_арр, тако да је опсег индекса од 0 до 3. Као што видите, тупле 0 садржи л_арр[0] анд б_арр[0]тупле 1 садржи л_арр[1] анд б_арр[1]и тако даље.

Питхон зип() функција (слика аутора)

Према томе, можете проћи кроз зип(л_арр,б_арр) као што је приказано испод:

area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)

# Output
[8,5,7,27]

У следећем одељку ћете научити како да користите условне изразе унутар разумевања листе.

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

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

Ево синтаксе:

<new_list> = [<expression> for <item> in <iterable> if <condition>]

Уместо да израчунате <израз> за све ставке, желели бисте то да урадите само за оне ставке које задовољавају одређени <услов>—где је услов := Тачно. А ово води до поједностављене синтаксе као што је приказано:

Разумевање Питхон листе са синтаксом услова (Слика аутора)

▶ Са тим, пређимо на примере кода.

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

#1. Добијате стринг „Учим Питхон 2022.“. Желите да добијете листу свих цифара у овом низу. Па како то радиш?

У Питхон-у, <цхар>.исдигит() делује на знак <цхар> и враћа Труе ако је цифра (0-9); иначе враћа Фалсе.

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

str1 = "I'm learning Python3 in 2022"

digits = [char for char in str1 if char.isdigit()]

print(digits)

# Output
['3', '2', '0', '2', '2']

У горњем коду:

  • прођете кроз стринг стр1,
  • приступите сваком знаку да бисте проверили да ли је цифра помоћу методе исдигит(), и
  • додајте цхар у нову листу цифара само ако је цифра.

Узмимо још један пример.

#2. Имате листу воћа.🍊 И желите да направите листу почиње_са_б која садржи све воће са листе воћа које почиње са б. Можете користити метод стартсвитх() да запишете услов.

<стр>.стартсвитх(‘цхар’) враћа Тачно ако <стр> почиње са ‘цхар’; иначе враћа Фалсе.

fruits = ['blueberry','apple','banana','orange','cherry']

starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]

print(starts_with_b)

# Output
['blueberry', 'banana']

У излазу изнад, добијамо ‘боровницу’ и ‘банану’, што су два воћа која почињу са ‘б’ на листи воћа, као што смо очекивали.

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

Закључак

Надам се да вам је овај водич помогао да разумете разумевање листе у Питхон-у.

Хајде да сумирамо:

  • Можете користити [<do this> for <all-items> in <this-list>] да бисте креирали нову листу користећи разумевање листе.
  • Поред тога, можете користити синтаксу [<do this> for <all-items> in <this-list> if <condition-is-True>] са условном наредбом иф.

Поред тога, кодирали сте и неколико примера. Као следећи корак, можете покушати да препишете неке од ваших постојећих Питхон петљи за креирање листе користећи разумевање листе. Срећно кодирање! До следећег туторијала.😄

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

  11 Софтвер за управљање пословним процесима (БПМ) за мала и средња предузећа