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.

instagram viewer

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.

Email
Ako používať zoznamy jazykov Python (a kedy ich nepoužívať)

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.

Súvisiace témy
  • Programovanie
  • Python
O autorovi
Idowu Omisola (Publikovaných 55 článkov)

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.

Viac od Idowu Omisola

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.

.