Srozumitelnost seznamů, množin a slovníků v Pythonu

Foto: Kara Eads on Unsplash

Výklady v Pythonu:

Porozumění se skládá z jednoho výrazu, za kterým následuje alespoň jedna klauzule for a nula nebo více klauzulí for nebo if.

V Pythonu existují tři comprehensions.

Typy comprehensions v Pythonu(Zdroj obrázku: Autor)

List Comprehensions:

List comprehensions poskytují stručný způsob vytváření seznamů. Běžně se používají k vytváření nových seznamů, kde každý prvek je výsledkem nějaké operace aplikované na každý člen jiné posloupnosti nebo iterovatelné položky, nebo k vytváření posloupnosti těch prvků, které splňují určitou podmínku. – Python docs

Syntaxe:

Výrazem může být libovolný libovolný výraz, složené výrazy, tuple, vnořené funkce nebo jiné porozumění seznamu.

Toto je ekvivalentní

for item in iterable:
if conditional:
expression

Typ návratu:

List

Použití seznamového porozumění:

Seznamové porozumění se skládá ze závorek obsahujících výraz, za kterým následuje klauzule for a pak nula nebo více klauzulí for nebo if. Výsledkem bude nový seznam vzniklý vyhodnocením výrazu v kontextu klauzulí for a if, které za ním následují.

Vysvětlení chápání seznamu(Zdroj obrázku: Autor)

Chápání seznamu vs. for cyklus.

Pomocí List Comprehension je stručnější a čitelnější v porovnání s for loop.

Vyhledání čtverce čísel pomocí List Comprehension vs for loop:

for loop vs List comprehension

List comprehension vs filter.

Vrací iterátor z těch prvků iterable, pro které funkce vrací true. Iterable může být buď posloupnost, kontejner, který podporuje iteraci, nebo iterátor

Vyhledávání sudých čísel pomocí List comprehension vs filter():

List comprehension vs filter()

3. List comprehension vs map.

map:

Vrací iterátor, který aplikuje funkci na každý prvek iterable, čímž získá výsledky.

Vyhledání čtverce čísel pomocí List Comprehension vs map():

List Comprehension vs map()

Vložené smyčky v List Comprehension.

List Comprehension může obsahovat jednu nebo více klauzulí for.

Příklad 1. Vložené smyčky v List Comprehension:

Zploštění seznamu pomocí List comprehension

5. vícenásobná podmínka if v List Comprehension.

List comprehension může obsahovat nulu nebo více klauzulí if.

Příklad: 1:

Seznamové chápání s použitím dvou klauzulí if

Výraz může být v seznamovém chápání tuple.

V seznamovém chápání můžeme výraz uvést jako tuple. Měl by být zapsán v závorkách. V opačném případě to vyvolá chybu. Výsledkem bude seznam tuplů.

Příklad 1: Vytvoření seznamu tuplů pomocí List Comprehension se dvěma klauzulemi ‚for‘:

Seznam tuplů

Pokud je výraz tuplem a pokud není uzavřen v závorkách, vyvolá to SyntaxError.

Výraz by měl být uzavřen v závorkách, pokud se jedná o tuple.

Příklad 2:Použití funkce zip() v chápání seznamu:

zip() v chápání seznamu

Chápání seznamu lze použít k volání metody na každém prvku.

Příklad 1: Volání metody strip() na každém prvku v seznamu. Používá se k odstranění bílých míst.

volání metody strip() na každém prvku

Příklad 2: Volání metody upper() na každém prvku v seznamu.

volání metody upper() na každém prvku

Srozumitelnost seznamu může obsahovat složité výrazy a vnořené funkce.

Příklad 1:V níže uvedeném příkladu ve výrazu používáme metodu strip a funkci int.

Příklad 2: V níže uvedeném příkladu ve výrazu používáme funkci abs() a str().

Vnořené chápání seznamu.

Výraz v chápání seznamu může obsahovat i další chápání seznamu.

Příklad: První seznamové porozumění zadané jako výraz vrátí seznam sudých čísel od 0 do 10. Vnořené chápání seznamu vrátí tento výraz (seznam sudých čísel od 0 do 10) třikrát(rozsah(3)).

Vnořené chápání seznamu

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.