Loendi mõistmise õigeaegne kasutamine Pythonis võib hõlbustada iteratiivseid loenditoiminguid. Lisaks ühele reale on see loetavam ja täidab tõhusamalt.
Kuid võite saada tööd, kui te ei tea, kuidas seda kasutada. See võib olla isegi masendavam, kui te ei tea, kus seda oma koodis rakendada. Siinkohal näitame teile, kuidas kasutada Pythonis loendite mõistmist koos mõnede tegelike näidetega.
Mis on Pythoni loendite mõistmine ja kuidas see töötab?
Üksuste loendi loomine Pythoni abil on lihtne. Ülesanne võib siiski veidi tüütuks muutuda, kui peate looma väärtuste või üksuste loendi matemaatilistest või stringitoimingutest. See võib olla siis, kui loendi mõistmine võib olla kasulik.
Loendi mõistmise kasutamise eeliseks on see, et ühes loendis saate teha mitu toimingut.
Seevastu loob see uusi üksusi ja lisab need tühja loendisse, mille see automaatselt deklareerib. Nii et tühja loendi käsitsi tegemise ja selle lisamise asemel a-ga eest loop, Pythoni loendi mõistmine võimaldab teil seda teha automaatselt, ilma et peaksite vaeva nägema, kuidas uus loend läbi tuleb.
Mõiste "loendi mõistmine" tuleneb asjaolust, et kõik toimingud asuvad nimelisele muutujale määratud Pythoni loendis. Nagu me varem ütlesime, võimaldab see teil teha konkreetseid toiminguid ühes koodireas. Seejärel lisab väljund uude loendisse.
Lõppkokkuvõttes saate loendi mõistmise väljundit kasutada ka muudel eesmärkidel. Seda seetõttu, et see kuhjendab väljendeid eraldi muutujatesse. Nii et saate neile hiljem viidata.
Näiteks võite olla veebisaidi kraapimine BeautifulSoupiga. Oletame, et kavatsete veebisaidilt saada kõigi kaupade nimed ja nende hinnad.
Seejärel otsustate kraapitud andmed CSV- või Exceli faili panna. Ideaalne praktika on kraapida kõigi esemete nimed ja hinnad ning paigutada mõlemad eraldi veergudesse. Sel juhul tagab loendi mõistmine, et kraapitud andmed on spetsiaalsetes muutujates. Seejärel saate sellised muutujad hiljem Python DataFrame'iks teisendada.
Vaadake järgmist näidet:
Tooted = [i.text i jaoks bs.find_all ('nimesildid')]
Hind = [i.text i-le bs.find_all ('hinnasildid')]
Kui olete lingitud muutujad kätte saanud, saate need Pythoni pandade abil DataFrame'i eraldi veergudesse panna.
Kuidas luua ja kasutada Pythonis loendi mõistmist
The eest loop on loendi mõistmisel oluline iteraator. Üldiselt on Pythonis loendi mõistmine järgmine:
ComprehensionVariable = [loendi üksuste avaldis]
Trükkimine Mõistmine Muutuv väljastab ülaltoodud koodi tulemuse loendina.
Kuid olge ettevaatlik, et mitte segi ajada loendi mõistmist lahtisega eest silmus.
Näiteks lähme kasutage avatud tsüklit et saada loend kõigist kolme korrutistest vahemikus 1 kuni 30:
myList = []
i jaoks vahemikus (1, 11):
myList.append (i * 3)
print (myList)
Väljund: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Nende kahe võrdlemiseks tehkem sama, kasutades loendi mõistmist:
multipleplesOf3 = [i * 3 i jaoks vahemikus (1, 11)]
print (multipleksid3)
Väljund = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Loendi mõistmist saate kasutada ka tingimuslausetega. Allolev näite kood prindib kõik paaratud numbrid vahemikus 1 kuni 10:
oddNumbers = [i i jaoks vahemikus (1, 11), kui mitte i% 2 == 2]
print (paarituNumbrid)
Väljund = [1, 3, 5, 7, 9]
Kirjutame nüüd ülaltoodud koodi ka avatud abil eest silmus:
myList = []
i jaoks vahemikus (1, 11):
kui ei, siis i% 2 == 0:
myList.append (i)
print (myList)
Väljund: [1, 3, 5, 7, 9]
Seotud: Kuidas Pythonis loendit lisada
Loendi mõistmine aktsepteerib ka pesasid, kui laused:
oddNumbers = [i i jaoks vahemikus (1, 11), kui mitte i% 2 == 0, kui i <4]
print (paarituNumbrid)
Väljund: [1, 3]
See võtab ka pesastatud eest silmus:
someNums = [[i * 2 i jaoks vahemikus (1, 3)] jaoks _ vahemikus (4)]
print (someNums)
Teil võib olla ka tavaline pesa eest silmus loendi mõistmisel:
someNums = [i * 2 i jaoks vahemikus (1, 3) k vahemikus (4)]
Stringidega saate manipuleerida ka Pythoni loendi mõistmisega. Vaatame allpool sõnade vastulauset:
word = ["See on püütoni loendi mõistmise õpetus"]
wordCounter = [i.count ('') + 1 i jaoks sõnas]
print (wordCounter)
Väljund: 7
Loendi mõistmine võib aktsepteerida ka funktsiooni, mis täidab konkreetset toimingut. Lisame loendist arusaadavaks korrutava funktsiooni, mis saab paarisarvu, et näha, kuidas see töötab:
Numbrid = [4, 7, 8, 15, 17, 10]
def kordaja (n):
mitmekordne = n * 2
tagastama mitu
multipleEven = [kordaja (i) i jaoks numbrites, kui i% 2 == 0]
print (mituEven)
Väljund: [8, 16, 20]
Ülaltoodud koodi saate ikkagi kirjutada ühte funktsiooni mõistmist kasutamata. Kuid loendi mõistmine on kasulik, kui peate sooritama mitu kordust ja paigutama kõik neist eraldi muutujatesse.
Näiteks saate teha järgmise toimingu n ja omage selle jaoks spetsiaalset muutujat. Muutkem ülaltoodud mõistmist, et paarituist luua paarisarvud:
multipleEvenFromOdds = [kordaja (i) i jaoks numbrites, kui mitte i% 2 == 0]
print (multipleEvenFromOdds)
Väljund: [14, 30, 34]
Sõnastik ja mõistete mõistmine
Lisaks loendi mõistmisele pakub Python ka sõnastikku ja seatud mõistmise funktsionaalsust.
Vaadake allpool toodud sõnastiku mõistmise näidet, et näha, kuidas see töötab:
vastab = {i: i * 2 i-le vahemikus (10), kui mitte i% 2 == 0}
print (korrigeerima)
Väljund: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
Ülal olev kood kordab numbriloendi vahemikus 1 kuni 9 ja muudab need võtmeteks. Seejärel käsib Python korrutada iga võtme kahega. Lõpuks esitab see selle toimingu tulemused saadud massiivi iga võtme vastavate väärtustena.
Seotud: Kuidas massiivid ja loendid Pythonis töötavad
Komplektist arusaamine on natuke sarnane loendi mõistmisega. Siin on näide komplektist arusaamisest:
arvud = {i ** (2) i vahemikus (10), kui i% 4 == 0}
print (numbrid)
Väljund: {0, 16, 64}
Kuid erinevalt loendi mõistmisest eemaldab komplekti mõistmine duplikaadid:
nums = {i i jaoks vahemikus (20), kui i% 2 == 1 k vahemikus (10), kui k% 2 == 1}
print (arv)
Väljund: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
Võite proovida ülaltoodud koodi, kasutades loendi mõistmist, et näha, kuidas need erinevad.
Kas saate iga kord kasutada loendi mõistmist?
Vaatasime loendi mõistmise erinevaid näiteid ja kus saate neid kasutada. Kuid nagu iga teine Pythoni meetod, sõltub ka loendi mõistmise kasutusjuht konkreetsest probleemist, mida soovite lahendada. Seetõttu peaksite seda kasutama ainult siis, kui see sobib ideaalselt konkreetse probleemi jaoks, mida soovite lahendada.
Üks loendi mõistmise eesmärk on lihtsustada oma koodi ja muuta see loetavamaks. Niisiis, vältige selle käsitlemisel keerukust. Näiteks võib pikk Pythoni mõistmine lugemiseks keerukaks muutuda. See kaotab selle eesmärgi.
Siin on kõik, mida peate teadma Pythoni selle hämmastava funktsiooni kasutamise kohta, mis suurendab teie tootlikkust ja koodi loetavust üleöö.
- Programmeerimine
- Python
![](/f/6f5d00c78bed32ddb10a955a2fd3d371.jpg)
Idowu on kirglik kõigest nutikast tehnoloogiast ja tootlikkusest. Vabal ajal mängib ta kodeerimisega ringi ja lülitub igavuse korral malelauale, kuid armastab ka rutiinist lahti murda. Tema kirg näidata inimestele moodsate tehnikate kohta motiveerib teda rohkem kirjutama.
Telli meie uudiskiri
Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!
Veel üks samm !!!
Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.