Ako používať porozumenie zoznamu v Pythone

Ako používať porozumenie zoznamu v Pythone

Včasné používanie porozumenia zoznamu v Pythone vám môže uľahčiť iteračné operácie so zoznamom. Okrem toho, že je jeden riadok, je aj čitateľnejší a vykonáva sa efektívnejšie.





Ak však neviete, ako ho používať, môžete sa poriadne zamestnať. Ešte frustrujúcejšie to môže byť, ak neviete, kde to vo svojom kóde uplatniť. Tu vám ukážeme, ako používať porozumenie zoznamu v Pythone na niekoľkých príkladoch zo skutočného života.





Čo je porozumenie zoznamu v Pythone a ako funguje?

Vytvorenie zoznamu položiek v Pythone je jednoduché. Úloha však môže byť trochu únavná, keď potrebujete vygenerovať zoznam hodnôt alebo položiek z matematických alebo reťazcových operácií. Vtedy môže použitie porozumenia zoznamu prísť vhod.





Výhodou porozumenia zoznamu je, že v jednom zozname môžete vykonať niekoľko operácií.

filmy zadarmo, žiadne sťahovanie, žiadna registrácia

Naproti tomu vytvára nové položky a pripája ich k prázdnemu zoznamu, ktorý automaticky deklaruje. Namiesto toho, aby ste prázdny zoznam vytvorili ručne a pridali k nemu príponu pre slučka, porozumenie zoznamu v Pythone vám to umožní urobiť automaticky bez toho, aby ste sa museli starať o to, ako nový zoznam prechádza.



Termín „porozumenie zoznamu“ pochádza zo skutočnosti, že všetky operácie sú v zozname Python priradené pomenovanej premennej. Ako sme už uviedli, umožňuje vám vykonávať konkrétne operácie na jednom riadku kódu. Potom výstup pripojí k novému zoznamu.

V konečnom dôsledku môžete výstup z porozumenia zoznamu použiť aj na iné účely. Dôvodom je, že ukladá výrazy do samostatných premenných. Môžete sa na ne teda odvolať neskôr.





Napríklad môžete byť zoškrabanie webovej stránky pomocou softvéru BeautifulSoup . Predpokladajme, že chcete z webovej stránky získať názov všetkých položiek a ich ceny.

Potom sa rozhodnete vložiť zoškrabané údaje do súboru CSV alebo Excel. Ideálnou praxou je zoškrabať názov všetkých položiek a ich ceny a umiestniť ich do samostatných stĺpcov. Použitím porozumenia zoznamu však v takom prípade zaistíte, že budete mať zoškrabané údaje vo vyhradených premenných. Tieto premenné potom môžete neskôr previesť na dátový rámec Pythonu.





Pozrite sa na nasledujúci príklad:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Hneď ako získate premenné v cykle, môžete ich potom vložiť do samostatných stĺpcov v dátovom rámci pomocou systému Python's Pandas.

Ako vytvoriť a používať porozumenie zoznamu v Pythone

The pre loop je základným iterátorom pri porozumení zoznamu. Porozumenie zoznamu v Pythone má spravidla tento formát:

ComprehensionVariable = [expression for items in list]

Tlač Pochopenie premenné vygeneruje výsledok vyššie uvedeného kódu ako zoznam.

Dávajte si však pozor, aby ste si nezamieňali porozumenie zoznamu s otvoreným pre slučka.

Napríklad poďme použite slučku open for získate zoznam všetkých násobkov troch od 1 do 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Aby sme ich porovnali, urobme to isté s porozumením zoznamu:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Porozumenie zoznamu môžete použiť aj s podmienečnými príkazmi. Nasledujúci kód kódu vytlačí všetky nepárne čísla od 1 do 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Teraz tiež prepíšeme vyššie uvedený kód pomocou príkazu open pre slučka:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Súvisiace: Ako pripojiť zoznam v Pythone

Porozumenie zoznamu akceptuje aj vnorené príkazy if:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Tiež to vyžaduje vnorené pre slučka:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Môžete mať tiež vnorený pláň pre slučka v porozumení zoznamu:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

S reťazcami môžete manipulovať aj s porozumením zoznamu v Pythone. Pozrime sa nižšie na porozumenie slovám:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Porozumenie zoznamu môže tiež akceptovať funkciu, ktorá vykonáva konkrétnu operáciu. Vložíme funkciu multiplikátora, ktorá dostane v porozumení zoznamu párne čísla, aby sme zistili, ako to funguje:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Vyššie uvedený kód môžete stále napísať v jednej funkcii bez použitia porozumenia. Porozumenie zoznamu je však užitočné, keď potrebujete vykonať niekoľko iterácií a každú z nich umiestniť do samostatných premenných.

Môžete napríklad vykonať inú operáciu na n a majú na to vyhradenú premennú. Upravme vyššie uvedené porozumenie, aby sa vygenerovali párne čísla z nepárnych:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Slovník a množinové porozumenie

Okrem porozumenia zoznamu ponúka Python aj slovník a sadu funkcií porozumenia.

Pozrite sa na nižšie uvedený príklad porozumenia slovníka a zistite, ako funguje:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Vyššie uvedený kód iteruje zoznamom čísiel medzi 1 a 9 a robí z nich kľúče. Potom Pythonu povie, aby vynásobil každý kľúč dvoma. Nakoniec predstavuje 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

Množina porozumení je trochu podobná porozumeniu zoznamu. Tu je príklad súboru s porozumením:

môj počítač nerozpoznal môj externý pevný disk
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Na rozdiel od porozumenia zoznamu však nastavené porozumenie odstráni duplikáty:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Vyššie uvedený kód si môžete vyskúšať pomocou porozumenia zoznamu a zistiť, ako sa líšia.

Môžete použiť porozumenie zoznamu vždy?

Pozreli sme sa na rôzne príklady porozumenia zoznamu a kde ich môžete použiť. Rovnako ako každá iná metóda Python, prípad použitia porozumenia zoznamu závisí od konkrétneho problému, ktorý chcete vyriešiť. Preto by ste ho mali používať iba vtedy, ak je ideálny pre konkrétny problém, ktorý chcete vyriešiť.

Jedným z účelov porozumenia zoznamu je zjednodušiť kód a urobiť ho čitateľnejším. Uistite sa teda, že sa pri riešení tohto problému vyhnete zložitosti. Napríklad dlhé porozumenie Pythonu sa môže stať zložitým na čítanie. To poráža jeho účel.

zdieľam zdieľam Tweet E -mail Ako používať porozumenie zoznamu Python (a kedy ich nepoužívať)

Tu je všetko, čo potrebujete vedieť o používaní tejto úžasnej funkcie Pythonu, ktorá zvýši vašu produktivitu a čitateľnosť kódu cez noc.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Python
O autorovi Idisou Omisola(94 publikovaných článkov)

Idowu je zanietený pre čokoľvek, čo sa týka inteligentných technológií a produktivity. Vo svojom voľnom čase sa hrá s kódovaním a keď sa nudí, prejde na šachovnicu, ale tiež sa rád z času na čas odtrhne od rutiny. Jeho vášeň ukazovať ľuďom cestu okolo moderných technológií ho motivuje písať viac.

Viac od Idowu Omisola

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber