Python

Loetlege Pythonis arusaamad

Loetlege Pythonis arusaamad
Loetõlkeid kasutatakse Pythonis sageli ühe rea lausete kirjutamiseks, mis loovad itereeritava objekti abil uue loendi või sõnastiku. Selles artiklis selgitatakse, kuidas kasutada Pythonis loendite mõistmist, alustades põhilisest selgitusest selle kohta, kuidas silmused Pythonis toimivad.

Loopi jaoks Pythonis

Pythoni silmuslause A kordab järjestikku mis tahes objekti, loendi, stringi jne liikmeid. Võrreldes teiste programmeerimiskeeltega on selle süntaks palju puhtam ja see ei nõua iteratsioonietappide käsitsi määramist ega iteratsiooni käivitamist. Kuigi on olemas viise, kuidas muuta selle käitumine teiste programmikeeltega samaks (seda artiklit ei käsitleta). Silmade üle saate ka teatud kontrolli kasutada, kasutades selliseid avaldusi nagu jätkamine, katkestamine, edastamine jne. Allpool on lihtne näide silmusest Pythonis:

x-i jaoks vahemikus (10):
print (x)

Ülaltoodud silmus for for printib kümme numbrit, mis algavad 0-st ja lõpevad 9-ga.

Loetlege arusaamad

Loendi mõistmine pole muud kui lühike / kokkuvõtlik viis mitme rea kirjutamiseks silmuste jaoks ühe reaga lauses. Allpool olev loendi mõistmise näide loob uue loendi nimega [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], lisades sinna kõik „x“ väärtused.

arvud = [x x vahemikus (10)]
print (numbrid)

Pange tähele, et loendi mõistmine loob alati uue loendi ega muuda avaldises kasutatud algseid iterableid. Tüüpilises loendi mõistmisväljendis peab olema klausel „for“ ja sellele võib järgneda tingimuslaused „if“ ja „else“. Ilma loendi mõistmist kasutamata kirjutatakse ülaltoodud näide järgmiselt:

numbrid = []
x-i jaoks vahemikus (10):
numbrid.lisa (x)
print (numbrid)

Toimivus ja loetavus

Loendi mõistmine on kiirem kui tsüklite puhul. Kuid kui te ei kordu üle sadade tuhandete üksuste, ei märka te suuri jõudluse parandusi. Kui loendi mõistmine pakub lühikest viisi tsüklitele kirjutamiseks, võivad keerulised avaldised põhjustada koodi halva loetavuse ja suurenenud sõnakasutuse. Oluline on hoida kood loetavana, välja arvatud juhul, kui maksimaalse jõudluse saavutamine on teie programmi jaoks hädavajalik.

Näide: loendi mõistmise süntaksi kasutamine sõnastike ja komplektidega

Püütoni sõnastik on elementide kogum, mis on määratletud võtmeväärtuste paarides, komplekt aga unikaalsete väärtuste kogu, kus duplikaadid pole lubatud. Loendi mõistmist saab kasutada ka Pythoni sõnastike ja komplektidega. Süntaks erineb pisut, selle asemel, et avaldist ruutude järgi sulgeda, peate nüüd kasutama lokkisulgusid. Samuti saate uue loendi asemel uue sõnastiku / määratud objekti.

data = "linn": "new york", "nimi": "john doe"
vormindatud_andmed = k: v.k, v andmetes pealkiri ().üksused ()
print (vormindatud_andmed)

Ülaltoodud näide teisendab stringi väärtused pealkirja suurtähtedeks ja loob uue sõnastiku nimega „formatted_data”, mille väljundiks on: 'city': 'New York', 'name': 'John Doe'. Sõnastikku / seadet saab ka muuta, määrates olemasoleva sõnastiku muutuja vasakul küljel.

data = "linn": "new york", "nimi": "john doe"
andmed = k: v.pealkiri () k, v andmetes.üksused ()
print (andmed)

Sõnastiku mõistmist kasutamata näeks kood välja selline:

data = "linn": "new york", "nimi": "john doe"
vormindatud_andmed =
k, v andmetes.üksused ():
vormindatud_andmed [k] = v.pealkiri ()
print (vormindatud_andmed)

Kuna komplektides pole võtme-väärtuse paare, saab komplekti mõistmist määratleda samamoodi nagu loendi mõistmist. Ainus erinevus on lokkis trakside kasutamine.

Näide: mitu loendi mõistmise aasade jaoks

Eespool nimetatud loendi mõistmise näide on põhiline ja selles kasutatakse ühte lauset “for”. Allpool on näide, mis kasutab silmuste jaoks mitut ja tingimuslikku lauset „kui”.

omadussõnad = ["Disco", "Eoan", "Focal", "Artful"]
loomad = ["Dingo", "Ermine", "Fossa", "Kobras"]
koodnimed = [x + "" + y x korral loomade y omadussõnades, kui y.startswith (x [0])]
print (koodnimed)

Kood näitab väljundina ['Disco Dingo', 'Eoan Ermine', 'Focal Fossa']. Kaks silmuste jaoks käivad üle omadussõnade ja loomade loendid ning nende liikmed ühendatakse tühiku abil ainult siis, kui mõlema sõna esimene täht on sama. Ilma loendi mõistmist kasutamata näeks kood välja selline:

omadussõnad = ["Disco", "Eoan", "Focal", "Artful"]
loomad = ["Dingo", "Ermine", "Fossa", "Kobras"]
koodnimed = []
omadussõnade x jaoks:
y puhul loomadel:
kui y.startswith (x [0]):
koodnimed.lisa (x + "" + y)
print (koodnimed)

Näide: loendi mõistmine lausega if-else

Allpool olev näide näitab if- ja else-lausete kasutamist loendi mõistetes.

number_list = [1, 2, 3, 4]
teine_loend = [5, 6, 7, 8]
tulemus = [Tõene, kui (x + y)% 2 == 0 veel Väärtus x-le numbri_loendis y-le teises_loendis]
print (tulemus)

Kahe loendi sirvimisel kontrollib ülaltoodud loendi mõistmine, kas elementide paari summa on paaris või mitte. Ülaltoodud koodi käivitamine näitab väljundina [True, False, True, False, False, True, False, True, True, False, True, False, False, True, False, True. Ilma loendi mõistmist kasutamata näeks kood välja selline:

number_list = [1, 2, 3, 4]
teine_loend = [5, 6, 7, 8]
tulemus = []
x numbri_loendis:
y jaoks teises_loendis:
kui (x + y)% 2 == 0:
tulemus.lisa (tõene)
muu:
tulemus.lisa (vale)
print (tulemus)

Järeldus

Loendi mõistmine pakub kena viisi puhaste ja ülevaatlike tsüklilausete kirjutamiseks. Kuid kui neid kasutatakse mitu tsüklit ja tingimuslauset, võivad nad kiiresti keerukaks ja raskesti mõistetavaks muutuda. Lõpuks jõuab see programmeerija mugavuse tasemeni, kuid üldiselt on hea kirjutada selgesõnaline, loetav ja hõlpsasti siluv kood, selle asemel et kasutada ülemäära lühikesi käske.

Kasulikud tööriistad Linuxi mängijatele
Kui teile meeldib Linuxis mänge mängida, on tõenäoline, et olete mängukogemuse parandamiseks kasutanud selliseid rakendusi ja utiliite nagu Wine, Lutr...
HD Remastered Games Linuxile, millel pole kunagi varem Linuxi väljalaset olnud
Paljud mängude arendajad ja kirjastajad pakuvad frantsiisi eluea pikendamiseks välja vanade mängude HD-remasteri. Palun fännid, kes soovivad ühilduvus...
Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...