„Python“

Pateikite supratimų sąrašą „Python“

Pateikite supratimų sąrašą „Python“
Sąrašų supratimas dažnai naudojamas „Python“, norint rašyti vienos eilutės teiginius, sukuriančius naują sąrašą ar žodyną, perkeliant kartojamą objektą. Šiame straipsnyje bus paaiškinta, kaip naudoti sąrašo supratimą „Python“, pradedant pagrindiniu paaiškinimu, kaip „loop“ veikia „Python“.

„Loop“ sistemoje „Python“

"Python" ciklo sakinys nuosekliai kartoja bet kokio objekto, sąrašo, eilutės ir tt narius. Palyginti su kitomis programavimo kalbomis, jo sintaksė yra daug švaresnė, todėl nereikia rankiniu būdu apibrėžti iteracijos žingsnių ir paleisti iteracijos. Nors yra būdų, kaip elgtis taip, kaip ir kitose programavimo kalbose (šis straipsnis nebus aprašytas). Taip pat galite šiek tiek kontroliuoti kilpas naudodami tokius teiginius kaip „tęsti“, „pertrauka“, „perduoti“ ir pan. Žemiau pateikiamas paprastas „Python“ kilpos pavyzdys:

x x diapazone (10):
spausdinti (x)

Aukščiau esanti „for loop“ atspausdins dešimt skaičių, prasidedančių nuo 0 iki 9.

Išvardykite supratimus

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

skaičiai = [x x x diapazone (10)]
spausdinti (skaičiai)

Atminkite, kad supratimas apie sąrašą visada sukuria naują sąrašą ir nekeičia originalių pakartojimų, naudojamų išraiškoje. Tipiškame sąrašo supratimo posakyje turi būti sakinys „už“, po jo gali būti sąlyginiai teiginiai „jei“ ir „dar“. Nenaudojant supratimo apie sąrašą, aukščiau pateiktas pavyzdys bus parašytas taip:

skaičiai = []
x x diapazone (10):
numeriai.pridėti (x)
spausdinti (skaičiai)

Našumas ir skaitomumas

Sąrašų supratimas yra greitesnis nei kilpų atveju. Tačiau nebent kartosite šimtus tūkstančių elementų, nepastebėsite didelių našumo patobulinimų. Nors sąrašo supratimas suteikia glaustą būdą rašyti kilpoms, sudėtingos išraiškos gali sukelti blogą kodo įskaitomumą ir didesnį daugiažodiškumą. Svarbu, kad kodas būtų įskaitomas, nebent norint pasiekti maksimalų našumą, būtina programa.

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

„Python“ žodynas yra elementų, apibrėžtų raktų ir reikšmių poromis, rinkinys, o rinkinys - unikalių reikšmių rinkinys, kuriame negalima dublikatų. Sąrašų supratimas taip pat gali būti naudojamas su „Python“ žodynais ir rinkiniais. Sintaksė šiek tiek skiriasi, užuot suvynioję išraišką kvadratinėmis petnešomis, dabar turėsite naudoti garbanotas petnešas. Taip pat vietoj naujo sąrašo gausite naują žodyną / nustatytą objektą.

duomenys = "miestas": "Niujorkas", "vardas": "john doe"
suformatuoti_duomenys = k: v.pavadinimas () k, v duomenyse.elementai ()
spausdinti (suformatuoti_duomenys)

Aukščiau pateiktame pavyzdyje eilutės reikšmės bus paverstos pavadinimo didžiosiomis raidėmis ir sukurtas naujas žodynas pavadinimu „formatted_data“, kurio išvestis bus: 'city': 'New York', 'name': 'John Doe. Taip pat galite pakeisti žodyną / nustatyti vietoje, kairėje pusėje nurodydami esamą žodyno kintamąjį.

duomenys = "miestas": "Niujorkas", "vardas": "john doe"
duomenys = k: v.pavadinimas () k, v duomenyse.elementai ()
spausdinti (duomenys)

Nenaudojant žodynų supratimo, kodas atrodytų taip:

duomenys = "miestas": "Niujorkas", "vardas": "john doe"
formatted_data =
už k, v duomenyse.elementai ():
suformatuoti_duomenys [k] = v.pavadinimas ()
spausdinti (suformatuoti_duomenys)

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

Pavyzdys: „Kelis už sąrašo supratimo kilpas“

Aukščiau pateiktas sąrašo supratimo pavyzdys yra pagrindinis ir naudojamas vienas teiginys „už“. Žemiau pateikiamas pavyzdys, kuriame kilpoms naudojami keli ir sąlyginis sakinys „jei“.

būdvardžiai = ["Disco", "Eoan", "Focal", "Artful"]
gyvūnai = ["Dingo", "Ermine", "Fossa", "Bebras"]
kodiniai pavadinimai = [x + "" + y x x gyvūnų būdvardžiuose, jei y.startswith (x [0])]
spausdinti (kodiniai pavadinimai)

Kodas rodys ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa'] kaip išvestį. Dvi skirtos kilpoms pereina „būdvardžių“ 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 = ["Disco", "Eoan", "Focal", "Artful"]
gyvūnai = ["Dingo", "Ermine", "Fossa", "Bebras"]
kodiniai vardai = []
x būdvardžiuose:
y gyvūnams:
jeigu tu.startswith (x [0]):
kodiniai pavadinimai.pridėti (x + "" + y)
spausdinti (kodiniai pavadinimai)

Pavyzdys: Sąrašo supratimas su sąlyga if-else

Žemiau pateiktame pavyzdyje bus parodyta if ir else sakinių naudojimas sąrašo supratime.

skaičius_ sąrašas = [1, 2, 3, 4]
kitas_ sąrašas = [5, 6, 7, 8]
rezultatas = [Tiesa, jei (x + y)% 2 == 0 dar klaidinga x x numerių sąraše y kitame sąraše]
spausdinti (rezultatas)

Peržiūrėdamas du sąrašus, aukščiau pateiktas sąrašas supranta, ar elementų poros suma lygi ar ne. Paleidus aukščiau esantį kodą, išvestis parodys [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True]. Nenaudojant sąrašo supratimo, kodas atrodytų taip:

skaičius_ sąrašas = [1, 2, 3, 4]
kitas_ sąrašas = [5, 6, 7, 8]
rezultatas = []
už x numerių sąraše:
y kitame sąraše:
jei (x + y)% 2 == 0:
rezultatas.pridėti (tiesa)
Kitas:
rezultatas.pridėti (klaidinga)
spausdinti (rezultatas)

Išvada

Sąrašo supratimas yra puikus būdas rašyti švarius ir glaustus ciklo 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 patogumo lygį, tačiau apskritai verta rašyti aiškų, skaitomą ir lengvai derinamą kodą, o ne pernelyg naudoti trumpinius.

Kaip įdiegti „League of Legends“ „Ubuntu 14“.04
Jei esate „League of Legends“ gerbėjas, tai jums yra galimybė išbandyti „League of Legends“. Atminkite, kad LOL palaikoma „PlayOnLinux“, jei esate „Li...
Įdiekite naujausią „OpenRA“ strategijos žaidimą „Ubuntu Linux“
„OpenRA“ yra „Free / Free Real Time Strategy“ žaidimų variklis, atkuriantis ankstyvuosius „Westwood“ žaidimus, tokius kaip klasikinis „Command & Conqu...
Įdiekite naujausią „Dolecin Emulator“, skirtą „Gamecube“ ir „Wii“, sistemoje „Linux“
„Delfinų emuliatorius“ leidžia žaisti pasirinktus „Gamecube“ ir „Wii“ žaidimus „Linux“ asmeniniuose kompiuteriuose (PC). „Dolphin Emulator“ yra laisv...