Saraksta izpratne Python — ar piemēriem

Programmā Python sarakstu izpratne palīdz izveidot jaunus sarakstus no esošiem iterējamiem elementiem, piemēram, sarakstiem, virknēm un korejām.

To kodolīgā sintakse ļauj izveidot jaunus sarakstus tikai vienā koda rindā. Un šī apmācība jums iemācīs, kā to izdarīt.

Dažu nākamo minūšu laikā jūs uzzināsit:

  • Kā izveidot jaunu sarakstu, izmantojot cilpas,
  • Sintakse sarakstu izpratnes izmantošanai programmā Python un
  • Kā modificēt saraksta izpratni, izmantojot if nosacījumu.

Turklāt jūs arī iekodēsit vairākus piemērus, kas palīdzēs labāk izprast sarakstu izpratni.

Iegremdējamies.🌊

Kā izveidot Python sarakstus, izmantojot cilpas

Pieņemsim, ka jums ir saraksts ar skaitļiem nums. Un jūs vēlaties izveidot citu sarakstu, kurā ir visu skaitļu kubs skaitļos. Lūk, kā to izdarīt, izmantojot cilpu Python:

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

print(num_cubes)

# Output
[8, 27, 125, 343]

Iepriekš minētajā kodā mums ir šādas darbības:

  • Inicializējiet tukšu sarakstu num_cubes.
  • Pārlūkojiet numuru sarakstu.
  • Piekļūstiet katram skaitlim num un aprēķiniet tā kubu, izmantojot kāpināšanas operatoru: num**3.
  • Visbeidzot pievienojiet kuba vērtību sarakstam num_cubes

Piezīme. Programmā Python eksponēšanas operators ** tiek izmantots kopā ar sintaksi: num**pow — skaitlis num tiek palielināts līdz power pow.

Tomēr to var izdarīt vieglāk, izmantojot Python saraksta izpratni. Turpināsim apgūt tā sintaksi.

Python saraksta izpratnes sintakse

Tālāk ir parādīta vispārīgā saraksta izpratnes sintakse.

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

Parsēsim iepriekš minēto sintaksi.

  • Programmā Python saraksti ir norobežoti ar kvadrātiekavām []— tāpēc jums ir jāpievieno saraksta izpratnes paziņojums [].
  • sadaļā nozīmē, ka veicat atkārtojumu. Jebkurš Python objekts, kurā varat cilpot un piekļūt atsevišķiem vienumiem, piemēram, saraksti, korteži un virknes, ir atkārtojami.
  • ir izvade, ko vēlaties aprēķināt katram .

Un tas izklausās vienkārši, vai ne?

Būtībā jūs vēlaties kaut ko darīt visiem saraksta vienumiem (vai jebkuram atkārtojamam), lai iegūtu jaunu sarakstu.

Izmantojot to, mēs varam vienkāršot sintaksi, kā parādīts attēlā zemāk.

Python saraksta izpratnes sintakse (autora attēls)

Tagad, kad esat apguvis sintaksi, ir pienācis laiks sākt kodēšanu. Varat izmantot pcdream.lt tiešsaistes Python IDE, lai sekotu šiem piemēriem. Vai arī varat tos palaist vietējā datorā.

Python saraksta izpratnes piemēri

Iepriekšējā sadaļā jūs izveidojāt jaunu sarakstu num_cubes no skaitļiem. Sāksim ar tā pārrakstīšanu, izmantojot saraksta izpratni.

Saraksta izpratnes izmantošana ar skaitļiem

Tagad izmantosim vienkāršoto sintaksi šādi:

  • : šeit jums ir jāsadala katrs cipars. Tāpēc aizstājiet ar numuru**3.
  • : cilpas mainīgais ir num — atsevišķi skaitļi sarakstā.
  • : mūsu esošais saraksts ir nums.
  • Un [num**3 for num in nums] ir pēdējā izteiksme. ✅

Saliekot to visu kopā, mums ir šāds koda fragments:

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

# Output
[8, 27, 125, 343]

Apsveicam, jūs esat iekodējis savu pirmo saraksta izpratni.🎉

Turpinot strādāt ar Python virknēm.

Saraksta izpratnes izmantošana ar virknēm

Pieņemsim, ka jums ir saraksta autori — varat pārrakstīt tālāk esošo sarakstu ar saviem iecienītākajiem autoriem.😄

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

Ievērojiet, kā autoru vārdi ir ar mazajiem burtiem iepriekš minētajā sarakstā. Tagad mēs vēlamies tos formatēt virsraksta reģistros un saglabāt tos jaunā sarakstā ar nosaukumu autoru_saraksts.

Piezīme: Python, virknes metode virsraksts () pieņem virkni kā argumentu un atgriež virknes kopiju, kas formatēta virsraksta reģistros. Tas nozīmē, ka katra vārda pirmais burts tiek rakstīts ar lielo burtu: Vārds Uzvārds

Tātad, šeit ir viss, kas jums jādara:

  • cilpu cauri autoru sarakstam un katram autoram sarakstā,
  • izsauciet author.title(), lai iegūtu virknes kopiju ar nosaukumu.

Un Python kods tam ir parādīts zemāk:

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']

Iepriekš minētajā izlaidē novērojiet, kā visu autoru vārdi ir formatēti virsraksta reģistros — tieši to mēs vēlējāmies.

Saraksta izpratnes izmantošana ar vairākiem sarakstiem

Līdz šim esat iemācījies izmantot saraksta izpratni, lai izveidotu jaunus sarakstus no viena esoša saraksta. Tagad uzzināsim, kā izveidot jaunu sarakstu no vairākiem sarakstiem.

Piemēram, apsveriet šo problēmu: Jums ir divi saraksti l_arr un b_arr, kas satur 4 taisnstūru garumus un platumus.

Un jums ir jāizveido jauns saraksta apgabals, kas ietver šo 4 taisnstūru laukumu. Atcerieties, laukums = garums * platums.

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

Lai aprēķinātu laukumu, jums būs nepieciešami elementi no abiem sarakstiem (l_arr un b_arr). Un to var izdarīt, izmantojot Python zip() funkciju.

Piezīme. Programmā Python funkcija zip() izmanto vienu vai vairākus iterables kā argumentus ar sintaksi zip(*iterables). Pēc tam tas atgriež korešu iteratoru, kur kortežs i satur elementu i no katra atkārtojuma.

Nākamajā attēlā tas ir detalizēti aprakstīts. Jums ir 4 vērtības l_arr un b_arr, tāpēc indeksu diapazons ir no 0 līdz 3. Kā redzat, korte 0 satur l_arr[0] un b_arr[0]Korpuss 1 satur l_arr[1] un b_arr[1]un tā tālāk.

Python zip() funkcija (autora attēls)

Tāpēc varat cilpu cauri zip(l_arr,b_arr), kā parādīts tālāk:

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

# Output
[8,5,7,27]

Nākamajā sadaļā jūs uzzināsit, kā saraksta izpratnē izmantot nosacījumu paziņojumus.

Python saraksta izpratne ar nosacījumu sintaksi

Sāksim, balstoties uz iepriekšējo sintaksi saraksta izpratnei.

Lūk, sintakse:

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

Tā vietā, lai aprēķinātu visiem vienumiem, vēlaties to darīt tikai tiem vienumiem, kas atbilst noteiktam  — kur, nosacījums := True. Un tas noved pie vienkāršotas sintakses, kā parādīts:

Python saraksta izpratne ar nosacījumu sintaksi (autora attēls)

▶ Ar to pāriesim pie koda piemēriem.

Python saraksta izpratne ar nosacījumu piemēriem

#1. Jums tiek dota virkne “Es mācos Python 2022. gadā”. Jūs vēlaties iegūt sarakstu ar visiem cipariem šajā virknē. Tātad, kā jūs to darāt?

Programmā Python .isdigit() iedarbojas uz rakstzīmi un atgriež True, ja tas ir cipars (0-9); pretējā gadījumā tas atgriež False.

Tālāk redzamais koda fragments parāda, kā varat apkopot visu virknes str1 ciparu sarakstu.

str1 = "I'm learning Python3 in 2022"

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

print(digits)

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

Iepriekš minētajā kodā:

  • jūs veicat cilpu cauri virknei str1,
  • piekļūstiet katrai rakstzīmei, lai pārbaudītu, vai tas ir cipars, izmantojot metodi isdigit() un
  • pievienojiet char jaunajiem saraksta cipariem tikai tad, ja tas ir cipars.

Ņemsim citu piemēru.

#2. Jums ir augļu saraksts.🍊 Un jūs vēlaties izveidot sarakstu sākas_ar_b, kurā ir visi augļi no augļu saraksta, kas sākas ar b. Nosacījuma uzrakstīšanai varat izmantot metodi startswith().

Fails .startswith(‘char’) atgriež vērtību True, ja sākas ar ‘char’; pretējā gadījumā tas atgriež False.

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']

Iepriekš redzamajā izvadā mēs iegūstam “mellenes” un “banānu”, kas ir divi augļi, kas augļu sarakstā sākas ar “b”, kā mēs gaidījām.

Un tas noslēdz mūsu diskusiju par saraksta izpratni.

Secinājums

Es ceru, ka šī apmācība palīdzēja jums saprast sarakstu izpratni Python.

Apkoposim:

  • Tu vari izmantot [<do this> for <all-items> in <this-list>] lai izveidotu jaunu sarakstu, izmantojot saraksta izpratni.
  • Turklāt varat izmantot sintaksi [<do this> for <all-items> in <this-list> if <condition-is-True>] ar ja nosacījuma paziņojumu.

Turklāt jūs esat arī kodējis vairākus piemērus. Nākamajā darbībā varat mēģināt pārrakstīt dažas esošās Python cilpas, lai izveidotu sarakstu, izmantojot saraksta izpratni. Laimīgu kodēšanu! Līdz nākamajai apmācībai.😄

Tagad varat apskatīt, kā sarakstu pārvērst vārdnīcā, vai uzzināt, kā rīkoties ar failiem programmā Python.

  15 iesācēju Python projekti, ko praktizēt un mācīties