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í.
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.
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.
- Programování
- Krajta
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í.
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.