Jak používat porozumění seznamu v Pythonu

Jak používat porozumění seznamu v Pythonu

Včasné použití porozumění seznamu v Pythonu vám může usnadnit iterativní operace se seznamem. Kromě toho, že je jeden řádek, je čitelnější a provádí se efektivněji.





Pokud však nevíte, jak to použít, můžete se dostat do práce. Může to být ještě frustrující, pokud nevíte, kde to ve svém kódu použít. Zde vám ukážeme, jak používat porozumění seznamu v Pythonu, s několika příklady z reálného života.





Co je porozumění seznamu v Pythonu a jak funguje?

Vytvoření seznamu položek pomocí Pythonu je snadné. Úkol však může být trochu únavný, když potřebujete vygenerovat seznam hodnot nebo položek z matematických nebo řetězcových operací. Tehdy může použití porozumění seznamu přijít vhod.





Výhodou použití porozumění seznamu je, že můžete provádět několik operací v jednom seznamu.

kde mohu tisknout dokumenty ze svého e -mailu

Naproti tomu vytváří nové položky a připojuje je k prázdnému seznamu, který deklaruje automaticky. Takže místo toho, abyste ručně vytvořili prázdný seznam a připojili se k němu pomocí pro smyčka, porozumění seznamu v Pythonu vám to umožní provést automaticky, aniž byste se museli starat o to, jak nový seznam projde.



Pojem „porozumění seznamu“ pochází ze skutečnosti, že všechny operace jsou v seznamu Pythonu přiřazeny pojmenované proměnné. Jak jsme uvedli dříve, umožňuje vám provádět konkrétní operace na jednom řádku kódu. Potom připojí výstup do nového seznamu.

Nakonec můžete výstup porozumění seznamu použít také k jiným účelům. Důvodem je, že ukládá výrazy do samostatných proměnných. Můžete se na ně tedy obrátit později.





Například můžete být škrábání webu pomocí aplikace BeautifulSoup . Předpokládejme, že máte v úmyslu získat název všech položek a jejich ceny z webových stránek.

Poté se rozhodnete vložit sešrotovaná data do souboru CSV nebo Excel. Ideální praxí je seškrabat název všech položek a jejich ceny a oba je umístit do samostatných sloupců. Použití porozumění seznamu však v takovém případě zajistí, že budete mít oškrabaná data ve vyhrazených proměnných. Tyto proměnné pak můžete později převést na datový rámec Pythonu.





Podívejte se na příklad níže:

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

Jakmile získáte smyčkové proměnné, můžete je poté umístit do samostatných sloupců v DataFrame pomocí Python's Pandas.

Jak vytvořit a používat porozumění seznamu v Pythonu

The pro smyčka je nezbytným iterátorem v porozumění seznamu. Porozumění seznamu v Pythonu má obecně tento formát:

ComprehensionVariable = [expression for items in list]

Tisk Pochopení proměnné vygeneruje výsledek výše uvedeného kódu jako seznam.

Dávejte si však pozor, abyste si nezaměnili porozumění seznamu s otevřeným pro smyčka.

Například pojďme použijte smyčku open for získat seznam všech násobků tří 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]

Abychom je mohli porovnat, udělejme totéž pomocí porozumění seznamu:

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

Porozumění seznamu můžete použít i s podmíněnými příkazy. Níže uvedený kód příkladu vytiskne všechna lichá čísla mezi 1 a 10:

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

Nyní také přepíšeme výše uvedený kód pomocí otevřeného pro smyčka:

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

Příbuzný: Jak připojit seznam v Pythonu

Porozumění seznamu také přijímá vnořené příkazy if:

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

Také to vyžaduje vnořené pro smyčka:

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

Rovněž můžete mít vnořenou pláň pro smyčka v porozumění seznamu:

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

S řetězci můžete manipulovat také s porozuměním seznamu Pythonu. Podívejme se níže na porozumění slovům:

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

Porozumění seznamu může také přijmout funkci, která provádí konkrétní operaci. Vložíme funkci multiplikátoru, která v porozumění seznamu získá sudá čísla, abychom zjistili, jak 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]

Stále můžete psát výše uvedený kód v jedné funkci bez použití porozumění. Porozumění seznamu je ale užitečné, když potřebujete provést několik iterací a každou z nich umístit do samostatných proměnných.

Můžete například provést další operaci na n a mít k tomu vyhrazenou proměnnou. Upravme výše uvedené porozumění, abychom vygenerovali sudá čísla z lichých:

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

Slovník a nastavení porozumění

Kromě porozumění seznamu nabízí Python také slovník a sadu srozumitelnosti.

Podívejte se na příklad porozumění slovníku níže, abyste zjistili, jak 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}

Výše uvedený kód iteruje seznamem čísel mezi 1 a 9 a činí z nich klíče. Potom řekne Pythonu, aby vynásobil každý klíč dvěma. Nakonec představuje výsledky této operace jako odpovídající hodnoty pro každý klíč ve výsledném poli.

Příbuzný: Jak pole a seznamy fungují v Pythonu

Množina porozumění je trochu podobná porozumění seznamu. Zde je příklad množiny porozumění:

připojit k síti, ale žádný internet
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Na rozdíl od porozumění seznamu však sada porozumění odstraní 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}

Výše uvedený kód můžete vyzkoušet pomocí porozumění seznamu a zjistit, jak se liší.

Můžete použít porozumění seznamu pokaždé?

Podívali jsme se na různé příklady porozumění seznamu a kde je můžete použít. Jako každá jiná metoda Pythonu však případ použití porozumění seznamu závisí na konkrétním problému, který chcete vyřešit. Proto byste jej měli používat pouze tehdy, je -li to ideální pro konkrétní problém, který chcete vyřešit.

Jedním z účelů porozumění seznamu je zjednodušení kódu a jeho lepší čitelnost. Při řešení se tedy vyvarujte složitosti. Například dlouhé porozumění Pythonu se může stát složitým na čtení. To poráží jeho účel.

Podíl Podíl tweet E-mailem Jak používat porozumění seznamu Python (a kdy je nepoužívat)

Zde je vše, co potřebujete vědět o používání této úžasné funkce Pythonu, která přes noc zvýší vaši produktivitu a čitelnost kódu.

Číst dále
Související témata
  • Programování
  • Krajta
O autorovi Idisou Omisola(94 publikovaných článků)

Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru