Včasné použitie porozumenia zoznamu v Pythone vám môže uľahčiť iteračné operácie so zoznamom. Okrem toho, že je to jeden riadok, je aj čitateľnejší a vykonáva sa efektívnejšie.
Ak však neviete, ako na to, môžete sa dopracovať. Môže to byť ešte frustrujúcejší, ak neviete, kde ho v kóde použiť. Tu vám ukážeme, ako používať porozumenie zoznamu v Pythone, a to pomocou niekoľkých príkladov z reálneho života.
Čo je to porozumenie zoznamu v Pythone a ako to funguje?
Vytvorenie zoznamu položiek pomocou Pythonu je jednoduché. Úloha však môže byť trochu zdĺhavá, keď potrebujete vygenerovať zoznam hodnôt alebo položiek z matematických alebo reťazcových operácií. Vtedy sa môže hodiť použitie porozumenia zoznamu.
Výhodou použitia porozumenia zoznamu je, že môžete vykonať niekoľko operácií v jednom zozname.
Naproti tomu vytvára nové položky a pripája ich k prázdnemu zoznamu, ktorý deklaruje automaticky. Takže namiesto toho, aby ste ručne vytvorili prázdny zoznam a pripojili ho k znaku pre slučka, porozumenie zoznamu v jazyku Python vám umožňuje robiť to automaticky bez toho, aby ste sa obťažovali, ako nový zoznam prejde.
Pojem „porozumenie zoznamu“ pochádza zo skutočnosti, že všetky operácie sú v zozname Pythonu priradenom k pomenovanej premennej. Ako sme už uviedli, umožňuje vám vykonávať konkrétne operácie v jednom riadku kódu. Potom pripojí výstup k novému zoznamu.
Výstup z porozumenia zoznamu môžete v konečnom dôsledku použiť aj na iné účely. Je to preto, že ukladá výrazy do samostatných premenných. Takže sa na ne môžete neskôr odvolať.
Napríklad by ste mohli byť skartovanie webu s BeautifulSoup. Predpokladajme, že chcete získať názov všetkých položiek a ich ceny z webovej stránky.
Potom sa rozhodnete vložiť zhromaždené údaje do súboru CSV alebo Excel. Ideálnym postupom je vyškriabať názov všetkých položiek a ich ceny a obe umiestniť do samostatných stĺpcov. Ak však v takom prípade použijete porozumenie zoznamu, zabezpečíte, že budete mať skreslené údaje vo vyhradených premenných. Takéto premenné potom môžete previesť do Python DataFrame neskôr.
Pozrite sa na príklad nižšie:
Products = [i.text pre i v bs.find_all ('menovky')]]
Cena = [i.text pre i v bs.find_all ('cenovky')]
Akonáhle získate cyklické premenné, môžete ich dať do samostatných stĺpcov v dátovom rámci pomocou Pythonových pand.
Ako vytvoriť a použiť porozumenie zoznamu v Pythone
The pre slučka je nevyhnutným iterátorom v porozumení zoznamu. Zoznam súborov v jazyku Python má spravidla tento formát:
ComprehensionVariable = [výraz pre položky v zozname]
Tlač Porozumenie Premenná vydá výsledok vyššie uvedeného kódu ako zoznam.
Buďte však opatrní, aby ste nezamieňali zoznam s otvoreným pre slučka.
Napríklad poďme použite slučku open for ak chcete získať zoznam všetkých násobkov troch od 1 do 30:
myList = []
pre i v rozsahu (1, 11):
myList.append (i * 3)
print (myList)
Výstup: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Ak ich chceme porovnať, urobme to isté pomocou porozumenia zoznamu:
multiplesOf3 = [i * 3 pre i v rozsahu (1, 11)]
tlač (multiplesOf3)
Výstup = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Môžete použiť porozumenie zoznamu aj s podmienenými príkazmi. Nasledujúci príkladový kód vytlačí všetky nepárne čísla medzi 1 a 10:
nepárne čísla = [i pre i v rozsahu (1, 11), ak nie i% 2 == 2]
tlač (nepárne čísla)
Výstup = [1, 3, 5, 7, 9]
Teraz tiež prepíšeme vyššie uvedený kód pomocou otvoreného kódu pre slučka:
myList = []
pre i v rozsahu (1, 11):
ak nie i% 2 == 0:
myList.append (i)
print (myList)
Výstup: [1, 3, 5, 7, 9]
Súvisiace: Ako pridať zoznam v Pythone
Zoznamové porozumenie prijíma aj vnorené výroky if:
nepárne čísla = [i pre i v rozsahu (1, 11), ak nie i% 2 == 0, ak i <4]
tlač (nepárne čísla)
Výstup: [1, 3]
Trvá to aj vnorené pre slučka:
someNums = [[i * 2 pre i v rozsahu (1, 3)] pre _ v rozsahu (4)]
tlač (someNums)
Môžete mať aj hniezdnu planinu pre slučka v zozname s porozumením:
someNums = [i * 2 pre i v rozsahu (1, 3) pre k v rozsahu (4)]
S reťazcami môžete manipulovať aj s porozumením zoznamu Python. Pozrime sa nižšie na porozumenie počítadla slov:
word = ["Toto je výukový program na porozumenie zoznamu pythónov"]
wordCounter = [i.count ('') + 1 pre i v slove]
print (wordCounter)
Výstup: 7
Zoznamové porozumenie môže prijať aj funkciu, ktorá vykonáva konkrétnu operáciu. Vložme funkciu multiplikátora, ktorá získa párne čísla v porozumení zoznamu, aby sme videli, ako to funguje:
Čísla = [4, 7, 8, 15, 17, 10]
multiplikátor def (n):
násobok = n * 2
vrátiť viac
multipleEven = [multiplikátor (i) pre i v číslach, ak i% 2 == 0]
print (multipleEven)
Výstup: [8, 16, 20]
Vyššie uvedený kód môžete stále napísať v jednej funkcii bez použitia porozumenia. Ale porozumenie zoznamu je užitočné, keď potrebujete vykonať niekoľko iterácií a umiestniť každú z nich do samostatných premenných.
Môžete napríklad vykonať ďalšiu operáciu n a mať na to vyhradenú premennú. Upravme porozumenie vyššie a vygenerujeme párne čísla z nepárnych:
multipleEvenFromOdds = [multiplikátor (i) pre i v číslach, ak nie i% 2 == 0]
tlač (multipleEvenFromOdds)
Výstup: [14, 30, 34]
Slovník a porozumenie súboru
Okrem porozumenia zoznamu Python ponúka aj slovník a funkciu porozumenia súboru.
Pozrite sa na príklad porozumenia slovníka, aby ste zistili, ako to funguje:
zodpovedajúce = {i: i * 2 pre i v rozsahu (10), ak nie i% 2 == 0}
tlač (corr)
Výstup: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
Vyššie uvedený kód iteruje zoznamom čísel od 1 do 9 a robí z nich klávesy. Potom povie Pythonu, aby vynásobil každý kľúč dvoma. Na záver prezentuje výsledky tejto operácie ako zodpovedajúce hodnoty pre každý kľúč vo výslednom poli.
Súvisiace: Ako polia a zoznamy fungujú v Pythone
Set porozumenie je trochu podobné porozumeniu zoznamu. Tu je príklad porozumenia súboru:
čísla = {i ** (2) pre i v rozsahu (10), ak i% 4 == 0}
tlač (čísla)
Výstup: {0, 16, 64}
Na rozdiel od porozumenia zoznamu však nastavenie porozumenia odstráni duplikáty:
nums = {i pre i v rozsahu (20), ak i% 2 == 1 pre k v rozsahu (10), ak k% 2 == 1}
tlač (čísla)
Výstup: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
Vyššie uvedený kód môžete vyskúšať pomocou porozumenia zoznamu a zistiť, ako sa líšia.
Môžete zakaždým použiť porozumenie zoznamu?
Pozreli sme sa na rôzne príklady porozumenia zoznamu a toho, kde ich môžete použiť. Ako každá iná metóda v Pythone, aj prípad použitia porozumenia zoznamu závisí od konkrétneho problému, ktorý chcete vyriešiť. Mali by ste ho preto používať, iba ak je to ideálne pre konkrétny problém, ktorý chcete vyriešiť.
Jedným z dôvodov porozumenia zoznamu je zjednodušiť váš kód a zvýšiť jeho čitateľnosť. Nezabudnite sa preto vyhnúť komplikáciám. Napríklad dlhé porozumenie Pythonu sa môže stať zložitým na čítanie. To vyvracia účel.
Tu je všetko, čo potrebujete vedieť o používaní tejto úžasnej funkcie jazyka Python, ktorá zvýši vašu produktivitu a čitateľnosť kódu cez noc.
- Programovanie
- Python
Idowu je vášnivý pre čokoľvek inteligentné technológie a produktivitu. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, ale tiež rád občas vybočuje z rutiny. Jeho vášeň ukázať ľuďom cestu v moderných technológiách ho motivuje k tomu, aby písal viac.
Prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!
Ešte jeden krok…!
V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.