Savlaicīga sarunu izpratnes izmantošana Python var padarīt iteratīvās saraksta darbības jums vienkāršas. Papildus tam, ka tā ir viena rinda, tā ir lasāmāka un tiek izpildīta efektīvāk.

Tomēr jūs varētu strādāt, ja nezināt, kā to izmantot. Tas var būt vēl nomāktāks, ja nezināt, kur to izmantot savā kodā. Šeit mēs parādīsim, kā izmantot saraksta izpratni Python, izmantojot dažus reālās 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 mazliet nogurdinošs, ja jums ir jāizveido vērtību vai vienumu saraksts no matemātiskām vai virkņu operācijām. Tas ir, ja sarunu izpratne var būt noderīga.

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

Turpretī tas rada jaunus vienumus un pievieno tos tukšam sarakstam, ko tas automātiski deklarē. Tā vietā, lai manuāli izveidotu tukšu sarakstu un pievienotu tam ar priekš cilpa, Python saraksta izpratne ļauj to izdarīt automātiski, neuztraucoties par to, kā notiek jauns saraksts.

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

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

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

Pēc tam jūs nolemjat ievietot nokasītos datus CSV vai Excel failā. Ideāla prakse ir nokasīt visu priekšmetu nosaukumus un to cenas un abus ievietot atsevišķās kolonnās. Tomēr tādā gadījumā izpratne par sarakstu nodrošina, ka nokasītie dati ir īpašos mainīgajos. Pēc tam šādus mainīgos var pārveidot par Python DataFrame vēlāk.

Apskatiet šo piemēru:

Produkti = [i.text for i in bs.find_all ('vārda atzīmes')]
Cena = [i.teksts i vietnē bs.find_all ('cenu zīmes')]

Kad esat ieguvis mainīgos mainīgos, pēc tam tos var ievietot atsevišķās DataFrame kolonnās, izmantojot Python's Pandas.

Kā izveidot un izmantot saraksta izpratni Python

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

ComprehensionVariable = [saraksta vienumu izteiksme]

Drukāšana Izpratne mainīga izvada iepriekš minētā koda rezultātu kā sarakstu.

Tomēr esiet uzmanīgs, lai nejauktu saraksta izpratni ar atvērtu priekš cilpa.

Piemēram, pieņemsim izmantojiet atvērtu cilpu lai iegūtu visu trīs reizinājumu sarakstu no 1 līdz 30:

myList = []
i diapazonā (1, 11):
myList.append (i * 3)
izdrukāt (myList)
Rezultāts: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

multiplekssOf3 = [i * 3 i diapazonā (1, 11)]
drukāt (multiplekss3)
Rezultāts = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Saraksta izpratni var izmantot arī ar nosacījumiem. Zemāk esošajā koda piemērā tiek izdrukāti visi nepāra skaitļi no 1 līdz 10:

oddNumbers = [i i diapazonā (1, 11), ja ne i% 2 == 2]
drukāt (nepāra numuri)
Rezultāts = [1, 3, 5, 7, 9]

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

myList = []
i diapazonā (1, 11):
ja nē, es% 2 == 0:
myList.append (i)
izdrukāt (myList)
Rezultāts: [1, 3, 5, 7, 9]

Saistīts: Kā pievienot sarakstu Python

Saraksta izpratnē tiek pieņemti arī ligzdoti, ja paziņojumi:

oddNumbers = [i i diapazonā (1, 11), ja ne i% 2 == 0, ja i <4]
drukāt (nepāra numuri)
Izeja: [1, 3]

Tas prasa arī ligzdu priekš cilpa:

someNums = [[i * 2 par i diapazonā (1, 3)] par _ diapazonā (4)]
drukāt (dažiSummas)

Jūs varat arī ievietot vienkāršu ligzdu priekš cilpa saraksta izpratnē:

someNums = [i * 2 i diapazonā (1, 3) k diapazonā (4)]

Varat arī manipulēt ar virknēm ar Python saraksta izpratni. Apskatīsim vārdu skaitītāja izpratni zemāk:

word = ["Šī ir pitonu saraksta izpratnes apmācība"]
wordCounter = [i.count ('') + 1 par i vārdā]
drukāt (wordCounter)
Rezultāts: 7

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

Skaitļi = [4, 7, 8, 15, 17, 10]
def reizinātājs (n):
vairākkārt = n * 2
atgriezt vairākus
multipleEven = [reizinātājs (i) i skaitļos, ja i% 2 == 0]
drukāt (vairākkārt pat)
Rezultāts: [8, 16, 20]

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

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

multipleEvenFromOdds = [reizinātājs (i) i skaitļos, ja ne i% 2 == 0]
drukāt (multipleEvenFromOdds)
Rezultāts: [14, 30, 34]

Vārdnīca un kopīga izpratne

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

Apskatiet zemāk redzamo vārdnīcas izpratnes piemēru, lai redzētu, kā tas darbojas:

atbilst = {i: i * 2 i diapazonā (10), ja nē i% 2 == 0}
drukāt (koriģēt)
Izeja: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Iepriekš minētais kods atkārtojas skaitļu sarakstā no 1 līdz 9 un padara tos par taustiņiem. Pēc tam tā saka Python reizināt katru atslēgu ar divām. Visbeidzot, tas parāda šīs operācijas rezultātus kā atbilstošās vērtības katram atslēgam iegūtajā masīvā.

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

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

skaitļi = {i ** (2) i diapazonā (10), ja i% 4 == 0}
drukāt (numuri)
Izeja: {0, 16, 64}

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

nums = {i par i diapazonā (20), ja i% 2 == 1 k diapazonā (10), ja k% 2 == 1}
drukāt (summas)
Izeja: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

Vai jūs katru reizi varat izmantot izpratni par sarakstu?

Mēs esam apskatījuši dažādus saraksta izpratnes piemērus un to, kur jūs tos varat izmantot. Tomēr, tāpat kā jebkura cita Python metode, saraksta izpratnes lietojums ir atkarīgs no konkrētās problēmas, kuru vēlaties atrisināt. Tāpēc to izmantojiet tikai tad, ja tas ir ideāli piemērots konkrētajai 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 pārliecinieties, ka, izvairoties no tā, izvairieties no sarežģītības. Piemēram, ilga Python izpratne var kļūt sarežģīta lasīšanai. Tas iznīcina tā mērķi.

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 palielinās jūsu produktivitāti un kodu lasāmību visu nakti.

Saistītās tēmas
  • Programmēšana
  • Python
Par autoru
Idowu Omisola (Publicēti 55 raksti)

Idowu aizrauj kaut ko gudru tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pāriet uz šaha galdiņu, kad viņam ir garlaicīgi, taču viņš mīl arī kādu laiku atrauties no rutīnas. Aizraušanās ar cilvēku parādīšanu mūsdienu tehnoloģijās motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.