Kā izmantot saraksta izpratni programmā Python

Kā izmantot saraksta izpratni programmā Python

Savlaicīga sarakstu izpratnes izmantošana Python var atvieglot atkārtotas saraksta darbības. Papildus vienai rindai, tā ir lasāmāka un izpilda efektīvāk.





Tomēr, ja nezināt, kā to izmantot, jūs varat strādāt. Tas var būt pat nomākta, ja nezināt, kur to izmantot savā kodā. Šeit mēs parādīsim, kā izmantot saraksta izpratni Python, izmantojot dažus reālas dzīves piemērus.





Kas ir saraksta izpratne Python un kā tā darbojas?

Izmantojot Python, ir viegli izveidot vienumu sarakstu. Tomēr uzdevums var kļūt nedaudz nogurdinošs, ja no matemātiskām vai virkņu operācijām jāģenerē vērtību vai vienumu saraksts. Tādā gadījumā var noderēt saraksta izpratne.





Saraksta izpratnes izmantošanas priekšrocība ir tā, ka vienā sarakstā varat veikt vairākas darbības.

kā tiešsaistē skatīties netflix ar draugiem

Turpretī tas rada jaunus vienumus un pievieno tos tukšam sarakstam, ko tas automātiski paziņo. Tā vietā, lai manuāli izveidotu tukšu sarakstu un pievienotu to ar priekš cilpa, Python saraksta izpratne ļauj to izdarīt automātiski, neuztraucoties par jaunā saraksta izveidi.



Termins “saraksta izpratne” nāk no tā, ka visas darbības ir Python sarakstā, kas piešķirts nosauktajam mainīgajam. Kā mēs jau teicām iepriekš, tas ļauj veikt noteiktas darbības vienā koda rindā. Pēc tam tas pievieno izvadi jaunam sarakstam.

Galu galā saraksta izpratni var izmantot arī citiem mērķiem. Tas ir tāpēc, ka tas sakrauj izteiksmes atsevišķos mainīgos. Tātad jūs varat atsaukties uz tiem vēlāk.





Piemēram, jūs varētu būt nokasot vietni ar BeautifulSoup . Pieņemsim, ka no vietnes vēlaties iegūt visu preču nosaukumu un to cenas.

Pēc tam jūs nolemjat ievietot nokopētos datus CSV vai Excel failā. Ideāla prakse ir nokopēt visu vienību nosaukumu un to cenas un ievietot abas atsevišķās slejās. Tomēr, izmantojot saraksta izpratni, tādā gadījumā tiek nodrošināts, ka nokopētie dati ir norādītajos mainīgajos. Pēc tam šādus mainīgos varat pārvērst Python DataFrame.





Apskatiet piemēru zemāk:

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

Kad esat ieguvis cilpas mainīgos, varat tos ievietot atsevišķās kolonnās DataFrame, izmantojot Python's Pandas.

Kā izveidot un izmantot saraksta izpratni programmā Python

The priekš cilpa ir būtisks iterators saraksta izpratnē. Parasti saraksta izpratne programmā Python notiek šādā formātā:

ComprehensionVariable = [expression for items in list]

Drukāšana IzpratneMainīgs izvada iepriekš minētā koda rezultātu kā sarakstu.

Tomēr esiet piesardzīgs, lai nesajauktu saraksta izpratni ar atvērto priekš cilpa.

Piemēram, pieņemsim izmantojiet atvērtu cilpu lai iegūtu sarakstu ar visiem trīs reizinājumiem no 1 līdz 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]

Lai salīdzinātu abus, darīsim to pašu, izmantojot saraksta izpratni:

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

Saraksta izpratni var izmantot arī ar nosacījuma paziņojumiem. Tālāk redzamais koda piemērs drukā visus nepāra skaitļus no 1 līdz 10:

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

Tagad pārrakstīsim arī iepriekš minēto kodu, izmantojot atvērto priekš cilpa:

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

Saistīts: Kā pievienot sarakstu programmā Python

Saraksta izpratne pieņem arī ligzdotus, ja:

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

Tas aizņem arī ligzdotu priekš cilpa:

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

Jūs varat arī ligzdot līdzenumu priekš cilpa saraksta izpratnē:

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

Jūs varat arī manipulēt ar virknēm, izmantojot Python saraksta izpratni. Apskatīsim zemāk esošo vārdu izpratni:

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

Saraksta izpratne var pieņemt arī funkciju, kas veic noteiktu darbību. Lai redzētu, kā tas darbojas, ievietojam reizinātāja funkciju, kas iegūst pāra skaitļus saraksta izpratnē:

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]

Jūs joprojām varat rakstīt iepriekš minēto kodu vienā funkcijā, neizmantojot izpratni. Bet saraksta izpratne ir noderīga, ja jums ir jāveic vairākas iterācijas un jāievieto katra no tām atsevišķos mainīgos.

Piemēram, varat veikt citu darbību n un tam ir īpašs mainīgais. Pārveidosim iepriekš minēto izpratni, lai no nepāra radītu pāra skaitļus:

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

Vārdnīca un kopu izpratne

Papildus saraksta izpratnei Python piedāvā arī vārdnīcu un noteiktu izpratnes funkciju.

Apskatiet tālāk sniegto vārdnīcas izpratnes piemēru, lai redzētu, kā tā darbojas:

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}

Iepriekš minētais kods atkārto ciparu sarakstu no 1 līdz 9 un padara tos par taustiņiem. Pēc tam tas liek Python reizināt katru atslēgu ar diviem. Visbeidzot, tas parāda šīs darbības rezultātus kā atbilstošās vērtības katrai atslēgai iegūtajā masīvā.

Saistīts: Kā masīvi un saraksti darbojas Python

Kopu izpratne ir nedaudz līdzīga saraksta izpratnei. Šeit ir kopas izpratnes piemērs:

foršas lietas, ko varat darīt ar aveņu pi
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Tomēr atšķirībā no saraksta izpratnes kopas izpratne noņem dublikātus:

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}

Varat izmēģināt iepriekš minēto kodu, izmantojot saraksta izpratni, lai redzētu, kā tie atšķiras.

Vai varat izmantot saraksta izpratni katru reizi?

Mēs esam apskatījuši dažādus sarakstu izpratnes piemērus un to, kur tos izmantot. Tomēr, tāpat kā jebkura cita Python metode, saraksta izpratnes izmantošana ir atkarīga no konkrētās problēmas, kuru vēlaties atrisināt. Tāpēc to vajadzētu izmantot tikai tad, ja tas ir ideāli piemērots konkrētai problēmai, kuru vēlaties atrisināt.

Viens no saraksta izpratnes mērķiem ir vienkāršot kodu un padarīt to lasāmāku. Tāpēc, strādājot ar to, izvairieties no sarežģītības. Piemēram, ilgstoša Python izpratne var kļūt sarežģīta lasīšanai. Tas pārkāpj savu mērķi.

Kopīgot Kopīgot Čivināt E -pasts Kā izmantot Python saraksta izpratni (un kad tos neizmantot)

Šeit ir viss, kas jums jāzina par šīs apbrīnojamās Python funkcijas izmantošanu, kas uzlabos jūsu produktivitāti un koda lasāmību vienas nakts laikā.

Lasīt Tālāk
Saistītās tēmas
  • Programmēšana
  • Python
Par autoru Idisou Omisola(Publicēti 94 raksti)

Idowu aizraujas ar jebko gudru tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pārslēdzas uz šaha galdu, kad viņam ir garlaicīgi, taču viņam arī patīk laiku pa laikam atrauties no rutīnas. Viņa aizraušanās parādīt cilvēkiem ceļu apkārt mūsdienu tehnoloģijām motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu