Návod na porozumenie slovníka Python

Programovací jazyk Python ponúka jedinečnú sadu nástrojov, vďaka ktorým je kódovanie nielen zábavné, ale tiež urýchľuje váš pokrok ako programátora. Vďaka jednoduchému použitiu sa Python stal obľúbeným jazykom pre rôzne odvetvia, od vývoja webu a vedy o údajoch až po financie a ďalšie.

Návod na porozumenie slovníka Python

Porozumenie slovníka Pythonu je dôležitým nástrojom, ktorý vám umožňuje dynamicky generovať slovníky iterovaním existujúcich iterovateľných dátových štruktúr alebo slovníkov, aby ste vytvorili nové. Porozumenie slovníka si môžete predstaviť ako podobné porozumeniu zoznamu, ale s trochu iným prípadom použitia.

Keď sa zoznámite s porozumeniami, zistíte, že môžu výrazne zlepšiť kód tým, že podporujú prehľadnosť a eliminujú potrebu dlhých, opakujúcich sa slučiek.

Ak ste novým používateľom , možno ste sa nestretli s porozumením alebo ste ho nepoužili vo svojom kóde. Predtým, ako sa ponoríme do syntaxe, položme si primárnu otázku: Čo je pochopenie slovníka Pythonu?

Obsah

Čo je porozumenie slovníka Python?

Python Dictionary Comprehension je stručný spôsob vytvárania slovníkov pomocou jednoduchých výrazov. Umožňuje vám vytvárať nové slovníky bez toho, aby ste museli používať for-loops.e

Pozrime sa na príklad porozumenia. Predpokladajme, že máte dva zoznamy, jeden obsahuje kľúče a druhý hodnoty:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

Pomocou porozumenia slovníka môžete vytvoriť nový slovník opakovaním dvoch zoznamov a kombináciou zodpovedajúcich párov kľúč – hodnota:

my_dict = {k: v for k, v in zip(keys, values)}
print(my_dict)

Výstupom bude:

{'a': 1, 'b': 2, 'c': 3}

Návod na porozumenie slovníka Python

Vyššie uvedený príklad by mal poskytnúť predstavu o tom, čo sú v . Aby sme vám pomohli upevniť tento koncept, pochopme syntax slovníkových porozumení v Pythone.

Pochopenie syntaxe porozumenia slovníka

Syntax pre porozumenie slovníka je jednoduchá, ale výkonná. Ponúkajú stručný . Tiež sa riadia podobnou syntaxou na pochopenie zoznamu, ale používajú zložené zátvorky {} a pár kľúč – hodnota oddelený dvojbodkou.

Základná štruktúra je nasledovná:

{key: value for (key, value) in iterable}

V tejto syntaxi kľúč a hodnota predstavujú výrazy použité na generovanie kľúčov a hodnôt výsledného slovníka. Iterovateľný poskytuje zdroj údajov používaných na vytvorenie párov kľúč – hodnota.

Táto syntax bola zavedená v Pythone 3 a spätne portovaná až do Pythonu 2.7, čím sa zabezpečila široká kompatibilita medzi verziami Pythonu.

Ak chcete napríklad vytvoriť slovník, ktorý mapuje čísla od 0 do 4 na ich druhé mocniny pomocou porozumenia slovníka, môžete použiť nasledujúci kód Python:

square_dict = {x: x**2 for x in range(5)}

Výsledkom bude nasledujúci slovník:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Návod na porozumenie slovníka Python

Čo ak by ste chceli iterovať cez dve premenné súčasne? Môžete to dosiahnuť pomocou porozumenia slovníka pomocou funkcie zip() na vytvorenie slovníka z dvoch iterovateľných položiek, z ktorých jedna predstavuje kľúče a druhá predstavuje hodnoty. Tu je príklad:

keys = ['a', 'b', 'c', 'd', 'e']
values = [1, 2, 3, 4, 5]
my_dict = {k: v for k, v in zip(keys, values)}

Výsledný slovník bude:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

Návod na porozumenie slovníka Python

Porozumenie slovníka vám tiež umožňuje pridať voliteľný príkaz if na koniec porozumenia na použitie podmieneného filtra na zahrnuté položky.

Môžete napríklad vytvoriť slovník iba s párnymi číslami a ich druhými mocničkami pomocou porozumenia slovníka:

even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}

Výsledkom je:

{0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Návod na porozumenie slovníka Python

Teraz, keď ste už trochu oboznámení so syntaxou porozumenia, poďme sa pozrieť na niekoľko príkladov porozumenia.

Príklady porozumenia slovníka

Porozumenie slovníka nájde množstvo prípadov použitia vďaka jeho výkonnej a elegantnej syntaxi. Môžu vám ušetriť čas a urobiť váš kód čitateľnejším.

Mapovanie čísel na ich štvorce

Uvažujme o jednoduchom príklade, v ktorom chcete vytvoriť slovník, ktorý mapuje čísla na ich štvorce pomocou pochopenia slovníka Python:

squares = {x: x**2 for x in range(1, 6)}
print(squares)

Výsledkom bude:

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Vyššie uvedený kód robí rovnakú prácu ako šesťkrát spustenie cyklu a umocnenie druhej mocniny každého čísla. Nižšie uvedený kód ukazuje spustenie cyklu na získanie druhých mocnín čísel:

squares = {}
for x in range(1, 6):
    squares[x] = x ** 2

print(squares)

V tejto chvíli sa možno pýtate, prečo používať porozumenie, keď môžete použiť slučky. Pri programovaní je pravidlom písať kompaktný a efektívny kód.

Na svoje porozumenie môžete použiť aj podmienky. Môžete si napríklad vytvoriť slovník, ktorý obsahuje iba párne čísla a ich druhé mocniny:

even_squares = {x: x**2 for x in range(1, 6) if x % 2 == 0}
print(even_squares)

Spustenie tohto kódu vytvorí nový slovník, ako je tento:

{2: 4, 4: 16}

Obrátené kľúče a hodnoty

Môžete tiež ľahko obrátiť prvky slovníka s porozumením slovníka v Pythone.

Nasledujúci kód ukazuje, ako obrátiť kľúče a hodnoty existujúceho slovníka pomocou pochopenia slovníka:

original_dict = {"one": 1, "two": 2, "three": 3, "four": 4}
reversed_dict = {v: k for k, v in original_dict.items()}
print(reversed_dict)

Vyššie uvedené porozumenie slovníka (alebo porozumenie diktátu) vytlačí nasledovné:

{1: 'one', 2: 'two', 3: 'three', 4: 'four'}

Návod na porozumenie slovníka Python

Ak chcete dobre porozumieť tomu, čo sú slovníky a ako ich môžete použiť v rôznych prípadoch, pozrite si video uvedené nižšie:

Uvedené príklady slúžia ako pevný základ pre využitie porozumenia slovníka vo vašich projektoch Python.

Tiež je možné ďalej optimalizovať porozumenie slovníka, čo umožňuje jedinému riadku kódu vykonávať zložité úlohy, ktoré môžu spotrebovať viac času a pamäte so slučkami.

3 Hlavné výhody porozumenia slovníka

Prostredníctvom uvedených príkladov ste zažili eleganciu porozumenia slovníka. Okrem čitateľnosti ponúka porozumenie niekoľko výhod vrátane efektívnosti pri práci s efektívnou štruktúrou hašovacej tabuľky kľúč/hodnota v Pythone, ktorá sa nazýva porozumenie dict .

1. Vytvorenie jasného a jednoduchého kódu

Porozumenia vám umožňujú vytvárať nové slovníky bez námahy a čitateľným spôsobom. Vďaka nim bude váš kód vyzerať a pôsobiť viac Pythonicky v porovnaní s tradičnými slučkami.

2. Lepší výkon so štýlom

Porozumenia sú nielen elegantné, ale aj efektívne. Často fungujú rýchlejšie ako pre slučky, pretože používajú jeden výraz. Python optimalizuje tento druh kódu, čím eliminuje potrebu opakovaného volania konštruktora slovníka alebo použitia metódy update().

3. Jednoduché filtrovanie a transformácia údajov

Ďalšou výhodou porozumenia slovníka je jeho jednoduchosť pri filtrovaní a transformácii údajov. Môžete napríklad vytvoriť nový slovník z existujúceho použitím podmienky alebo úpravou kľúčov alebo hodnôt.

Je dôležité pochopiť, kedy používať porozumenie slovníkov v Pythone, pretože sa môžu rýchlo stať zložitými a ťažšie sa čítajú a píšu. Teraz preskúmame niektoré prípady použitia pre porozumenie slovníka v Pythone.

3 príklady, kedy použiť slovník na porozumenie

Porozumenia sú užitočné v nasledujúcich 3 scenároch:

1. Pri vytváraní slovníka z dvoch zoznamov

{key:value for key, value in zip(list1, list2)}

2. Pri filtrovaní slovníka na základe hodnoty

{k: v for k, v in original_dict.items() if v > threshold}

3. Pri transformácii kľúčov alebo hodnôt

{k.upper(): v * 2 for k, v in original_dict.items()}

Je dôležité si zapamätať, že aj keď porozumenie môže urobiť váš kód elegantnejším a efektívnejším, môže sa stať aj ťažko čitateľným, ak je príliš zložité.

Pozrime sa na niektoré z najčastejších úskalí pri používaní slovníkových porozumení.

Úskalia porozumenia slovníka

Porozumenie slovníka prináša eleganciu a efektivitu, ale prináša aj výzvy. Budeme diskutovať o bežných úskaliach súvisiacich s čitateľnosťou, zložitosťou a výkonom pri veľkých súboroch údajov.

Vyváženie zložitosti a čitateľnosti

Zložité porozumenie slovníka môže byť náročné na čítanie. Uprednostňujte čitateľnosť kódu, najmä pri práci s ostatnými. V niektorých prípadoch môžu byť tradičné slučky for jednoduchšie a lepšie udržiavateľné.

Výkon s veľkými množinami údajov

V prípade veľkých súborov údajov nemusí byť porozumenie slovníka vždy optimálne. Podľa Stack Overflow môže vstavaný konštruktor dict() prekonať chápanie slovníka s mnohými pármi kľúč-hodnota vďaka zacykleniu v C.

Porovnanie s inými metódami

V tejto časti porovnáme chápanie slovníkov s dvoma alternatívnymi metódami vytvárania slovníkov v Pythone: pre slučky a funkcie lambda.

Pre Loop

Použitie cyklu for na vytvorenie slovníka zahŕňa inicializáciu prázdneho slovníka a potom iteráciu cez požadovaný platný pár kľúč-hodnota a pridanie každého páru do slovníka. V porovnaní s porozumením slovníka ide o podrobnejšiu metódu.

Nasleduje príklad vytvorenia slovníka pomocou slučiek for:

dictionary = {}
for key, value in zip(keys, values):
    dictionary[key] = value

Naopak, porozumenie slovníka vám umožňuje dosiahnuť rovnaký výsledok v jednom riadku:

dictionary = {key: value for key, value in zip(keys, values)}

Návod na porozumenie slovníka Python

Ako vidíte, porozumenia poskytujú stručný a čitateľnejší spôsob vytvárania slovníkov v Pythone.

Funkcie lambda

Na vytváranie slovníkov môžeme použiť aj funkcie Lambda. Funkcie lambda sú spôsob, ako vytvoriť malé, anonymné funkcie v Pythone. Môžu byť použité v spojení s funkciou map() na vytvorenie slovníka.

Pozrime sa na príklad funkcií Lambda na vytváranie slovníkov:

keys = ['a', 'b', 'c']
values = [1, 2, 3]

key_value_pairs = map(lambda key, value: (key, value), keys, values)
dictionary = dict(key_value_pairs)

Na porovnanie, tu je návod, ako možno rovnaký slovník vytvoriť pomocou porozumenia:

dictionary = {key: value for key, value in zip(keys, values)}

Návod na porozumenie slovníka Python

Opäť platí, že porozumenie slovníka poskytuje stručnú a čitateľnejšiu alternatívu k vytváraniu slovníkov pomocou funkcií lambda a funkcie map().

Osvedčené postupy na porozumenie slovníka

Pri používaní porozumení v Pythone je nevyhnutné dodržiavať osvedčené postupy na zlepšenie čitateľnosti, udržiavateľnosti a efektívnosti. Tu je niekoľko osvedčených postupov, ktoré treba zvážiť:

1. Udržujte porozumenie slovníka jednoduché

Porozumenie slovníka je silné, ale malo by byť jasné a stručné. Ak je vaše porozumenie príliš zložité alebo zahŕňa viacero riadkov, zvážte použitie tradičného cyklu for. To pomáha porozumieť kódu, najmä pre ostatných alebo pri neskoršom opätovnom navštívení vašej práce.

2. Využite vstavané funkcie

Python ponúka vstavané funkcie ako zip() a enumerate(), ktoré pomáhajú vytvárať porozumenia. Pomocou týchto funkcií zefektívnite svoj kód a urobte ho čitateľnejším.

Napríklad použitie zip() na spojenie dvoch zoznamov a vytvorenie slovníka vedie k stručnému a čistému kódu, ako je tento:

{key: value for key, value in zip(keys, values)}

3. Používajte podmienené príkazy rozumne

V prípade potreby začleňte do svojich porozumení podmienené príkazy, ale nepreháňajte ich. Môžu pomôcť filtrovať alebo upravovať výsledný slovník, ale príliš veľa vnorených podmienok môže sťažiť čítanie kódu. Jednoduchý príklad zahŕňajúci podmienený príkaz je:

{x: x**2 for x in range(10) if x % 2 == 0}

4. Dávajte pozor na porozumenie vnoreného slovníka

Porozumenie vnoreného slovníka môže generovať slovníky s vnorenými štruktúrami. Avšak podobne ako podmienené príkazy môže prebytok vnoreného slovníka spôsobiť, že kód bude ťažšie dešifrovať. Vyhnite sa prekročeniu dvoch úrovní vnorenia v chápaní vnoreného slovníka.

Niekedy možno budete musieť použiť vnorené porozumenie slovníka vo vnútri slučiek, aby ste dosiahli požadovanú efektivitu.

Naše posledné slovo

Teraz ste zvládli porozumenie slovníka v Pythone. Táto elegantná a efektívna technika pomáha vytvárať slovníky iterovaním cez iterovateľné položky alebo pomocou podmienok. Porozumenie zjednodušuje váš kód, zvyšuje čitateľnosť a udržiavateľnosť.

Vytváranie nových slovníkov je jednoduché s porozumením, čo šetrí čas a námahu v porovnaní s tradičnými for-loopmi. Sú užitočné v reálnych aplikáciách, ako je spracovanie údajov, mapovanie a transformácia.

Ak by ste chceli rozšíriť svoje znalosti jazyka Python a stať sa skutočným profesionálom, navštívte náš kurz jazyka Python a zistite, ako vytvárame najlepších používateľov jazyka Python na svete.


Vytvoření tabulky data v LuckyTemplates

Vytvoření tabulky data v LuckyTemplates

Zjistěte, proč je důležité mít vyhrazenou tabulku s daty v LuckyTemplates, a naučte se nejrychlejší a nejefektivnější způsob, jak toho dosáhnout.

LuckyTemplates Mobile Reporting Tipy a techniky

LuckyTemplates Mobile Reporting Tipy a techniky

Tento stručný návod zdůrazňuje funkci mobilního hlášení LuckyTemplates. Ukážu vám, jak můžete efektivně vytvářet přehledy pro mobily.

Profesionální servisní analytické zprávy v LuckyTemplates

Profesionální servisní analytické zprávy v LuckyTemplates

V této ukázce LuckyTemplates si projdeme sestavy ukazující profesionální analýzy služeb od firmy, která má více smluv a zákaznických vztahů.

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Aktualizácie Microsoft Power Platform | Microsoft Ignite 2021

Pozrite si kľúčové aktualizácie pre Power Apps a Power Automate a ich výhody a dôsledky pre platformu Microsoft Power Platform.

Bežné funkcie SQL: Prehľad

Bežné funkcie SQL: Prehľad

Objavte niektoré bežné funkcie SQL, ktoré môžeme použiť, ako napríklad reťazec, dátum a niektoré pokročilé funkcie na spracovanie alebo manipuláciu s údajmi.

Vytvoření šablony LuckyTemplates: Průvodce a tipy

Vytvoření šablony LuckyTemplates: Průvodce a tipy

V tomto tutoriálu se naučíte, jak vytvořit dokonalou šablonu LuckyTemplates, která je nakonfigurována podle vašich potřeb a preferencí.

Parametry pole a malé násobky v LuckyTemplates

Parametry pole a malé násobky v LuckyTemplates

V tomto blogu si ukážeme, jak vrstvit parametry pole s malými násobky, abychom vytvořili neuvěřitelně užitečné přehledy a vizuály.

LuckyTemplates Rank a vlastní seskupení

LuckyTemplates Rank a vlastní seskupení

V tomto blogu se dozvíte, jak používat funkce hodnocení LuckyTemplates a vlastní seskupování k segmentaci ukázkových dat a jejich seřazení podle kritérií.

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

Zobrazení kumulativního součtu pouze do určitého data v LuckyTemplates

V tomto tutoriálu se budu zabývat konkrétní technikou, jak zobrazit kumulativní součet pouze do určitého data ve vašich vizuálech v LuckyTemplates.

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Bullet Charts: Pokročilé vlastní vizuální prvky pro LuckyTemplates

Naučte se vytvářet a přizpůsobovat Bullet grafy v LuckyTemplates, které se používají hlavně pro měření výkonu oproti cílovým nebo předchozím rokům.