Sąrašas „Python“

List Comprehensions Python



Sąrašo supratimas dažnai naudojamas „Python“, norint parašyti vienos eilutės teiginius, kurie sukuria naują sąrašą ar žodyną per kilpą per pasikartojantį objektą. Šiame straipsnyje bus paaiškinta, kaip naudoti sąrašo supratimą „Python“, pradedant nuo pagrindinio paaiškinimo, kaip ciklai veikia „Python“.

„Loop in Python“

„Python“ ciklo sakinys nuosekliai kartoja bet kurio objekto, sąrašo, eilutės ir tt narius. Palyginti su kitomis programavimo kalbomis, jos sintaksė yra daug švaresnė ir nereikalauja rankiniu būdu nustatyti iteracijos veiksmų ir pradėti iteracijos. Nors yra būdų, kaip jos elgsena būtų tokia pati kaip ir kitų programavimo kalbų (šiame straipsnyje nenumatyta). Taip pat galite šiek tiek valdyti kilpas, naudodami tokius teiginius kaip tęsti, pertraukti, perduoti ir pan. Žemiau pateikiamas paprastas ciklo „Python“ pavyzdys:







dėlxį diapazonas(10):
spausdinti(x)

Aukščiau pateikta ciklas spausdins dešimt skaičių, pradedant nuo 0 ir baigiant 9.



Sąrašo supratimai

Sąrašo supratimas yra ne kas kita, kaip trumpas / glaustas būdas parašyti kelių eilučių kilpas vieno eilutės teiginyje. Žemiau pateiktas sąrašo supratimo pavyzdys sukurs naują sąrašą kaip [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], įtraukdamas į jį visas x reikšmes.



skaičių= [xdėlxį diapazonas(10)]
spausdinti (skaičių)

Atminkite, kad sąrašo supratimas visada sukuria naują sąrašą ir nekeičia išraiškoje naudojamų originalių pasikartojančių dalykų. Įprasta sąrašo supratimo išraiška turi turėti sakinį už, o po jo gali būti pateikiami sąlyginiai teiginiai. Nenaudojant sąrašo supratimo, aukščiau pateiktas pavyzdys bus parašytas taip:





skaičių= []
dėlxį diapazonas(10):
skaičių.pridėti(x)

spausdinti (skaičių)

Našumas ir skaitomumas

Sąrašas suvokiamas greičiau nei kilpos. Tačiau, jei nekartosite šimtų tūkstančių elementų, nepastebėsite didelių našumo patobulinimų. Sąrašo supratimas suteikia glaustą būdą rašyti kilpas, tačiau sudėtingos išraiškos gali lemti blogą kodo įskaitomumą ir didesnį daugiakalbiškumą. Svarbu, kad kodas būtų skaitomas, nebent pasiekti maksimalų našumą yra absoliučiai būtina jūsų programai.

Pavyzdys: Sąrašo supratimo sintaksės naudojimas su žodynais ir rinkiniais

„Python“ žodynas yra elementų, apibrėžtų raktinių verčių porose, rinkinys, o rinkinys-unikalių verčių rinkinys, kuriame neleidžiama pasikartoti. Sąrašo supratimą taip pat galima naudoti su „Python“ žodynais ir rinkiniais. Sintaksė šiek tiek skiriasi, užuot išraišką įvynioję į kvadratinius skliaustus, dabar turėsite naudoti garbanotas petnešas. Jūs taip pat gausite naują žodyną / rinkinio objektą, o ne naują sąrašą.



duomenis= {'miestas':'Niujorkas', 'vardas':'Džonas Doe'}

formatuoti_datai= {k: v.titulas() dėlį,vįduomenis.elementus()}

spausdinti (formatuoti_datai)

Aukščiau pateiktas pavyzdys pavers eilutės reikšmes į antraštes ir sukurs naują žodyną, pavadintą formatuoti_datai, kurio išvestis bus: {‘city’: ‘New York’, ‘name’: ‘John ​​Doe’}. Taip pat galite pakeisti žodyną / rinkinį vietoje, kairėje pusėje nurodydami esamą žodyno kintamąjį.

duomenis= {'miestas':'Niujorkas', 'vardas':'Džonas Doe'}

duomenis= {k: v.titulas() dėlį,vįduomenis.elementus()}

spausdinti (duomenis)

Nenaudojant žodyno supratimo, kodas atrodytų taip:

duomenis= {'miestas':'Niujorkas', 'vardas':'Džonas Doe'}

formatuoti_datai= {}

dėlį,vįduomenis.elementus():
formatuoti_datai[į] =v.titulas()

spausdinti (formatuoti_datai)

Kadangi rinkiniuose nėra raktinių verčių porų, rinkinio supratimą galima apibrėžti taip pat, kaip ir sąrašo supratimą. Vienintelis skirtumas yra garbanotų petnešų naudojimas.

Pavyzdys: Keli kilpoms sąraše suprasti

Aukščiau paminėtas sąrašo supratimo pavyzdys yra paprastas ir teiginiui naudojamas vienas. Žemiau pateikiamas pavyzdys, kuriame ciklams naudojami keli ir sąlyginis if teiginys.

būdvardžiai= [„Diskas“, „Eoan“, „Židinys“, „Meniškas“]

gyvūnai= ['Dingo', 'Ermine', 'Duobė', „Bebras“]

kodiniai pavadinimai= [x +''+ irdėlxįbūdvardžiaidėlirįgyvūnaijeiir.prasideda su(x[0])]

spausdinti (kodiniai pavadinimai)

Kode kaip išvestis bus rodomas [„Disco Dingo“, „Eoan Ermine“, „Focal Fossa“]. Dvi kilpos eina per būdvardžius ir gyvūnų sąrašus, o jų nariai sujungiami naudojant tarpą, tik jei abiejų žodžių pirmoji raidė yra ta pati. Nenaudojant sąrašo supratimo, kodas atrodytų taip:

būdvardžiai= [„Diskas“, „Eoan“, „Židinys“, „Meniškas“]
gyvūnai= ['Dingo', 'Ermine', 'Duobė', „Bebras“]

kodiniai pavadinimai= []

dėlxįbūdvardžiai:
dėlirįgyvūnai:
jeiir.prasideda su(x[0]):
kodiniai pavadinimai.pridėti(x +''+ ir)

spausdinti (kodiniai pavadinimai)

Pavyzdys: sąrašo supratimas su sąlyga, jei būtų kitaip

Žemiau pateiktas pavyzdys parodys teiginių „jei ir kitaip“ naudojimą sąrašo supratime.

skaičių_sąrašas= [1, 2, 3, 4]
other_list= [5, 6, 7, 8]

rezultatas= [Tiesa jei (x + y)%2 == 0 Kitas Netiesa dėlxįskaičių_sąrašasdėlirįother_list]

spausdinti (rezultatas)

Peržiūrint du sąrašus, aukščiau pateiktas sąrašo supratimas patikrina, ar elementų poros suma lygi, ar ne. Paleidus aukščiau esantį kodą, bus rodoma [tiesa, klaidinga, tiesa, melas, melas, tiesa, melas, tiesa, tiesa, melas, tiesa, melas, melas, melas, tiesa, melas, tiesa]. Nenaudojant sąrašo supratimo, kodas atrodytų taip:

skaičių_sąrašas= [1, 2, 3, 4]
other_list= [5, 6, 7, 8]
rezultatas= []

dėlxįnumerių sąrašas:
dėlirįother_list:
jei (x + y)%2 == 0:
rezultatas.pridėti(Tiesa)
Kitas:
rezultatas.pridėti(Netiesa)

spausdinti (rezultatas)

Išvada

Sąrašo supratimas yra puikus būdas rašyti švarius ir glaustus kilpos teiginius. Tačiau jie gali greitai tapti sudėtingi ir sunkiai suprantami, jei naudojamos kelios kilpos ir sąlyginiai teiginiai. Galų gale kalbama apie programuotojo komforto lygį, tačiau paprastai yra gera idėja parašyti aiškų, lengvai skaitomą ir lengvai derinamą kodą, o ne pernelyg dažnai naudoti spartųjį žodį.