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

Pokud však nevíte, jak jej používat, můžete se vypracovat. Může to být ještě více frustrující, pokud nevíte, kde ji v kódu použít. Zde vám ukážeme, jak používat seznamové porozumění v Pythonu s některými příklady z reálného života.

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

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

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

Naproti tomu vytváří nové položky a připojuje je k prázdnému seznamu, který automaticky deklaruje. 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 Pythonu vám to umožní automaticky, aniž byste se obtěžovali tím, jak nový seznam prochází.

instagram viewer

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

Nakonec můžete výstup s porozuměním seznamu použít také pro jiné účely. Je to proto, že ukládá výrazy do samostatných proměnných. Takže na ně můžete později odkázat.

Například byste mohli být škrábání webu s 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 odebraná data do souboru CSV nebo Excel. Ideálním postupem je vyškrábat název všech položek a jejich ceny a oba umístit do samostatných sloupců. Použití porozumění seznamu však v takovém případě zajistí, že budete mít seškrábaná data ve vyhrazených proměnných. Potom můžete tyto proměnné převést na Python DataFrame později.

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

Products = [i.text pro i v bs.find_all ('jmenovky')]
Cena = [i.text pro i v bs.find_all ('cenovky')]

Jakmile získáte smyčkové proměnné, můžete je umístit do samostatných sloupců v datovém rámci pomocí Pythonových pand.

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

The pro smyčka je nezbytným iterátorem v porozumění seznamu. Obecně platí, že porozumění seznamu v Pythonu má tento formát:

ComprehensionVariable = [výraz pro položky v seznamu]

Tisk Porozumění Proměnná odešle výsledek výše uvedeného kódu jako seznam.

Dávejte však pozor, abyste nezaměňovali seznam 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ří mezi 1 a 30:

myList = []
pro i v rozsahu (1, 11):
myList.append (i * 3)
tisk (myList)
Výstup: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

multiplesOf3 = [i * 3 pro i v rozsahu (1, 11)]
tisk (multiplesOf3)
Výstup = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

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

oddNumbers = [i pro i v rozsahu (1, 11), pokud ne i% 2 == 2]
tisk (lichá čísla)
Výstup = [1, 3, 5, 7, 9]

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

myList = []
pro i v rozsahu (1, 11):
pokud ne i% 2 == 0:
myList.append (i)
tisk (myList)
Výstup: [1, 3, 5, 7, 9]

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

Seznam s porozuměním 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]
tisk (lichá čísla)
Výstup: [1, 3]

Trvá také vnořené pro smyčka:

someNums = [[i * 2 pro i v rozsahu (1, 3)] pro _ v rozsahu (4)]
tisk (someNums)

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

someNums = [i * 2 pro i v rozsahu (1, 3) pro k v rozsahu (4)]

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

word = ["Toto je výukový program pro porozumění seznamu pythonů"]
wordCounter = [i.count ('') + 1 pro i ve slově]
tisk (wordCounter)
Výstup: 7

Seznam s porozuměním může také přijmout funkci, která provádí konkrétní operaci. Vložme funkci multiplikátoru, která získá sudá čísla v porozumění seznamu, abychom zjistili, jak to funguje:

Čísla = [4, 7, 8, 15, 17, 10]
multiplikátor def (n):
násobek = n * 2
vrátit více
multipleEven = [multiplikátor (i) pro i v číslech, pokud i% 2 == 0]
tisk (multipleEven)
Výstup: [8, 16, 20]

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

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

multipleEvenFromOdds = [multiplikátor (i) pro i v číslech, pokud ne i% 2 == 0]
tisk (multipleEvenFromOdds)
Výstup: [14, 30, 34]

Slovník a pochopení stanovisek

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

Podívejte se na níže uvedené ukázkové porozumění slovníku, abyste zjistili, jak to funguje:

odpovídající = {i: i * 2 pro i v rozsahu (10), pokud ne i% 2 == 0}
tisk (corr)
Výstup: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Výše uvedený kód iteruje seznamem čísel od 1 do 9 a činí z nich klíče. Poté řekne Pythonu, aby každý klíč vynásobil dvěma. Nakonec prezentuje 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

Set porozumění je trochu podobné porozumění seznamu. Zde je příklad porozumění množině:

numbers = {i ** (2) for i in range (10) if i% 4 == 0}
tisk (čísla)
Výstup: {0, 16, 64}

Na rozdíl od seznamu s porozuměním však sada s porozuměním odstraní duplikáty:

nums = {i pro i v rozsahu (20), pokud i% 2 == 1 pro k v rozsahu (10), pokud k% 2 == 1}
tisk (čísla)
Výstup: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

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

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

Podívali jsme se na různé příklady porozumění seznamu a na to, kde je můžete použít. Jako každá jiná metoda v 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 pokud je ideální pro konkrétní problém, který chcete vyřešit.

Jedním z důvodů porozumění seznamu je zjednodušit váš kód a zvýšit jeho čitelnost. Takže se vyvarujte složitosti při řešení. Například dlouhé porozumění Pythonu se může stát složitým pro čtení. To maří svůj účel.

E-mailem
Jak používat seznamy Pythonu (a kdy je nepoužívat)

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

Související témata
  • Programování
  • Krajta
O autorovi
Idowu Omisola (Publikováno 55 článků)

Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas vybočuje z rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.

Více od Idowu Omisola

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

Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!

Ještě jeden krok…!

V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.

.