Python Enumerate: Vysvětlení s příklady

Práce se seznamy a dalšími iterovatelnými objekty je v . Někdy možná budete muset procházet tyto iterovatelné položky a zároveň sledovat index nebo počet aktuálního prvku. Zde přichází na pomoc vestavěná funkce enumerate() v Pythonu.

Funkce enumerate() v Pythonu vám poskytuje pohodlný způsob přístupu jak k indexu položky, tak k samotné položce, když procházíte seznam nebo jakýkoli iterovatelný objekt.

Python Enumerate: Vysvětlení s příklady

Díky této funkci je vaše , čitelné a efektivní. Umožňuje vám procházet prvky a získávat jejich index i hodnotu. Namísto ruční inicializace a zvyšování čítače v rámci smyčky se můžete spolehnout na enumerate(), že to udělá za vás.

V tomto článku se dozvíte o funkci enumerate() vestavěné v Pythonu, její důležitosti ve vašem kódu Pythonu a případech jejího použití.

Jdeme do toho!

Obsah

Co je funkce Python Enumerate?

Představte si, že pracujete s datovou strukturou seznamu a chcete s každou položkou něco udělat, ale také potřebujete znát pozici položky v seznamu.

Bez Pythonu enumerate() se můžete rozhodnout použít proměnnou čítače, kterou inkrementujete v každé iteraci smyčky. Ale tento přístup může být náchylný k chybám a není příliš „pythonic“.

Enumerate je vestavěná funkce v Pythonu, která vám umožňuje iterovat přes iterovatelné objekty a přitom sledovat index aktuální položky.

Nyní, když jste pochopili, co je funkce enumerate() v Pythonu, přejděme k syntaxi funkce Python enumerate() v další části!

Jaká je syntaxe funkce Enumerate v Pythonu?

Syntaxe funkce definuje, jak byste tuto funkci měli používat ve svém kódu, včetně toho, jaké argumenty bere a co vrací.

Python Enumerate: Vysvětlení s příklady

Funkce enumerate () má následující syntaxi:

enumerate(, start=0)
  • : Toto je povinný parametr a může to být libovolný iterovatelný Python, jako je seznam nebo n-tice.

  • start : Tento druhý parametr je volitelný parametr, který určuje počáteční hodnotu čítače. Ve výchozím nastavení je nastavena na 0.

Vrácená hodnota funkce enumerate () je objekt enumerate, což je iterátor mající dvojice (index, prvek) pro každou položku v dané iteraci.

Tento iterátor můžete použít pro současný přístup k indexu i položce.

Následující příklad ukazuje, jak můžete použít funkci enumerate() se seznamem:

fruits = ['apple', 'banana', 'cherry']

for index, item in enumerate(fruits):
    print(index, item)

V tomto příkladu enumerate() prochází objekty enumerate, tj. seznam plodů , a přiřazuje index každé položce počínaje 0.

Smyčka for pak rozbalí index a položku z výčtového objektu. To vám umožní provádět operace na základě indexu i hodnoty položky.

K vytištění rejstříku a položky na obrazovku používáme funkci tisku. Výstup kódu je uveden na obrázku níže:

Python Enumerate: Vysvětlení s příklady

Ve výstupu můžete vidět, že počáteční index je 0. Toto je výchozí hodnota indexu přiřazeného automaticky interpretem Pythonu.

Můžete však také zadat jinou počáteční hodnotu pro počítadlo zadáním volitelného parametru spuštění , jak je znázorněno v kódu níže:

for index, item in enumerate(fruits, start=1):
    print(index, item)

Výstup bude podobný výše uvedenému. Jediný rozdíl bude v tom, že index nyní začíná na 1.

Python Enumerate: Vysvětlení s příklady

Takže teď máte popis syntaxe funkce enumerate() v Pythonu. Ale jako u každého jiného nástroje je důležité vědět, kdy a kde jej použít.

To je důvod, proč v další části prozkoumáme některé běžné případy použití funkce enumerate()!

5 Případy použití funkce Python Enumerate

Funkce enumerate v Pythonu se široce používá ve scénářích, kde jsou pro programátora důležité jak index, tak hodnota iterovatelného objektu.

Níže jsme uvedli některé běžné případy použití funkcí výčtu v Pythonu.

1. Jak používat Enumerate se seznamy Pythonu

V Pythonu je a vestavěná datová struktura, která umožňuje uložit více položek do jedné proměnné. Představte si seznam jako kontejner, do kterého můžete vkládat různé položky, které udržují své pořadí.

Funkci enumerate() lze na seznamech použít různými způsoby, například:

A. Přístup k prvkům seznamu a jejich indexům pomocí Python Enumerate

Jedním z nejběžnějších případů použití enumerate() je situace, kdy potřebujete získat přístup jak k prvkům seznamu, tak k jejich indexům. Enumerate vám to umožní udělat čistým a efektivním způsobem.

Následuje příklad přístupu k prvkům seznamu a jejich indexům:

fruits = ['apple', 'banana', 'mango', 'grape', 'orange']
for index, fruit in enumerate(fruits):
    print(f"At index {index}, the fruit is {fruit}.")

Výstup tohoto kódu je uveden na obrázku níže:

Python Enumerate: Vysvětlení s příklady

B. Úprava prvků seznamu pomocí Python Enumerate

Když potřebujete upravit prvky seznamu na základě jejich indexu, enumerate() je vynikající nástroj. Můžete přistupovat k indexu v rámci smyčky a používat jej k úpravě seznamu.

Následuje příklad úpravy prvků seznamu pomocí funkce enumerate:

numbers = [1, 2, 3, 4, 5]

for i, num in enumerate(numbers):
    numbers[i] = num * 2

Tento kód Pythonu vytvoří seznam čísel od 1 do 5. Poté použije cyklus for a funkci enumerate() k iteraci seznamu.

Pro každou iteraci vynásobí aktuální číslo (num) 2 a znovu jej přiřadí na stejnou pozici v seznamu (čísla[i]).

Výsledkem je, že každé číslo v původním seznamu se zdvojnásobí, jak je znázorněno na obrázku níže:

Python Enumerate: Vysvětlení s příklady

C. Porovnání prvků ve dvou seznamech s Python Enumerate

Pokud porovnáváte prvky ve dvou různých seznamech, enumerate() může poskytnout index, který potřebujete pro přístup k prvkům v obou seznamech současně.

Následuje příklad použití funkce enumerate k porovnání prvků ve dvou seznamech:

list1 = [1, 2, 3, 4, 5]
list2 = [1, 2, 3, 0, 5]
for i, value in enumerate(list1):
    if value != list2[i]:
        print(f"Difference at index {i}: {value} (list1) vs {list2[i]} (list2)")

V tomto kódu nejprve definujeme dva seznamy, seznam1 a seznam2. Potom iterujeme seznam1 pomocí cyklu for s enumerate(), který poskytuje index (i) a hodnotu každé položky.

Pokud aktuální položka v seznamu1 neodpovídá odpovídající položce v seznamu2, vytiskne index rozdílu a rozdílné hodnoty z obou seznamů.

Výsledek tohoto kódu je uveden níže:

Python Enumerate: Vysvětlení s příklady

2. Jak používat Enumerate s Python N-ticemi

N-tice v Pythonu je uspořádaná kolekce prvků, podobná seznamu. Jediný rozdíl je v tom, že n-tice je neměnná, což znamená, že po vytvoření nemůžete její obsah změnit.

Následují některé z případů, kdy můžete použít enumerate s pythonskými n-ticemi.

A. Použití Python Enumerate() k nalezení prvku v n-tici

Při práci s n-ticemi v Pythonu můžete často potřebovat zjistit, zda prvek v n-tici existuje.

Následující příklad kódu ukazuje použití enumerate k nalezení prvků v n-tici:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')
for i, fruit in enumerate(fruits):
    if fruit == 'mango':
        print(f"'mango' found at position {i}")

Tento kód vypíše „mango“ na pozici 2, protože „mango“ je na indexu 2 v n-tice.

Python Enumerate: Vysvětlení s příklady

B. Použití Python Enumerate() k vytvoření slovníku z n-tice

Pokud máte n-tici a potřebujete ji transformovat do slovníku, může být vaším nástrojem funkce enumerate() v Pythonu.

Příklad kódu ukazuje, jak můžete vytvořit slovník z n-tice pomocí enumerate:

fruits = ('apple', 'banana', 'mango', 'grape', 'orange')

fruit_dict = {i: fruit for i, fruit in enumerate(fruits)}
print(fruit_dict)

Tento kód vytiskne slovník, kde klíče jsou indexy a hodnoty jsou prvky z n-tice.

Python Enumerate: Vysvětlení s příklady

3. Jak používat Enumerate se slovníky Pythonu

V Pythonu je slovník proměnlivý, neuspořádaný, kde každý klíč musí být jedinečný. Představte si to jako skutečný slovník: vyhledáte slovo (klíč) a získáte jeho definici (hodnotu).

Níže jsou uvedeny některé případy, kdy můžete použít enumerate se slovníky Pythonu:

A. Procházení klíčů a hodnot slovníku

Pomocí funkce enumerate() můžete procházet klíče a hodnoty slovníku.

Funkce enumerate() přidá čítač do iterovatelného objektu (jako jsou slovníky), což vám umožní přístup k aktuální hodnotě indexu.

Níže je uveden slovník:

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, k in enumerate(example_dict):
    print(i, k)

V tomto kódu Pythonu nejprve vytvoříme slovník nazvaný example_dict. Poté použijeme funkci enumerate() k iteraci slovníku.

Pro každou iteraci vypíšeme počet smyček (který je dán i a začíná od 0) a aktuální klíč (což je k) ze slovníku.

Python Enumerate: Vysvětlení s příklady

B. Kombinace Python Enumerate s funkcí Items

Ke klíčům a hodnotám slovníku můžete také přistupovat pomocí funkce items() spolu s enumerate() . Funkce items () vrací iterovatelnou kolekci párů klíč–hodnota jako n-tice.

Níže uvedený příklad ukazuje, jak můžete použít funkci items() s enumerate() :

example_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i, (k, v) in enumerate(example_dict.items()):
    print(i, k, v)

V tomto kódu vytvoříme slovník s názvem , pak použijeme funkci enumerate() k iteraci párů klíč-hodnota slovníku. Během každé iterace vytiskneme index smyčky „i“, aktuální klíč „k“ a jeho odpovídající hodnotu „v“.

Python Enumerate: Vysvětlení s příklady

Nyní dobře rozumíte tomu, jak používat funkci enumerate() Pythonu v některých běžných scénářích. Enumerate() však nabízí ještě více.

Pojďme se ponořit do některých pokročilých případů použití kolem enumerate() v další části!

3 Pokročilé případy použití Pythonu Enumerate

V této části půjdeme nad rámec základů a prozkoumáme některé pokročilé případy použití funkce enumerate v Pythonu.

Budeme se zabývat následujícími případy použití:

  1. Použití Enumerate s třídami Pythonu

  2. Použití Enumerate s třídami Enum

  3. Použití Enumerate pro obrácení pořadí

Jdeme do toho!

1. Použití Enumerate s třídami Python

Na své programovací cestě v Pythonu můžete narazit na situace, kdy budete chtít použít enumerate s vlastními třídami.

Abyste toho dosáhli, vaše třída by měla implementovat metodu iter() , která umožňuje její iterovatelnost.

Zvažte třídu Color , která ukládá názvy barev a jejich přidružené hexadecimální hodnoty:

class Color:
    def __init__(self, colors: dict):
        self.colors = colors

    def __iter__(self):
        return iter(self.colors.items())

colors = Color({"red": "#FF0000", "green": "#00FF00", "blue": "#0000FF"})

for index, (name, hex_value) in enumerate(colors):
    print(f"{index}: {name} => {hex_value}")

V tomto kódu vytváříme třídu Color, která přebírá slovník názvů barev a jejich odpovídajících hexadecimálních hodnot.

Když v cyklu použijete enumerate(), poskytuje index spolu s každým párem klíč–hodnota. To vám umožní vytisknout index, název barvy a její hexadecimální hodnotu ve formátovaném řetězci.

Python Enumerate: Vysvětlení s příklady

2. Použití Python Enumerate s třídami Enum

Python přichází s vestavěnou třídou Enum , která vám umožňuje vytvářet typy výčtů s automaticky přiřazenými celočíselnými hodnotami.

Podívejte se například na následující kód:

from enum import Enum, auto

class Direction(Enum):
    NORTH = auto()
    EAST = auto()
    SOUTH = auto()
    WEST = auto()

for index, direction in enumerate(Direction):
    print(f"{index}: {direction.name} => {direction.value}")

V tomto skriptu definujeme směr výčtu se čtyřmi členy (Sever, VÝCHOD, JIH a ZÁPAD) pomocí modulu enum v Pythonu. Funkce auto() přiřadí každému členu automatickou hodnotu.

Když použijete enumerate() v cyklu, poskytuje index spolu s každým členem výčtu. To vám umožní vytisknout index, jméno člena a jeho automaticky přiřazenou hodnotu ve formátovaném řetězci.

Výstup tohoto kódu je uveden na obrázku níže:

Python Enumerate: Vysvětlení s příklady

3. Použití Python Enumerate pro obrácení pořadí

V některých případech můžete chtít vytvořit výčet položek v opačném pořadí. Toho lze dosáhnout použitím vestavěné funkce reversed() v kombinaci s enumerate() .

Následující příklad ukazuje výčet položek v obráceném pořadí:

my_list = ["apple", "banana", "cherry"]

for index, item in enumerate(reversed(my_list)):
    print(f"{index}: {item}")

V tomto kódu iterujeme obrácenou verzi my_list pomocí enumerate(). To vám poskytne index a položku z obráceného seznamu v každé iteraci. Umožňuje tisknout rejstřík a položku ve formátovaném řetězci.

Python Enumerate: Vysvětlení s příklady

Reverzní () nezmění původní sekvenci; vytvoří nový iterátor, který prezentuje položky v obráceném pořadí.

Chcete-li se dozvědět více o funkcích v Pythonu, podívejte se na následující video:

Závěrečné myšlenky

Jak budete pokračovat na své cestě Pythonem, zvládnutí funkce enumerate() je nutností. Je to nástroj, který zlepšuje čitelnost a efektivitu kódu.

Pomocí enumerate() můžete bez problémů přistupovat jak k indexu, tak k hodnotě ve vašich smyčkách, čímž se snižuje potřeba protiproměnných nebo indexování. Zjednodušuje váš kód a činí jej více Pythonic.

Ať už procházíte seznamy, n-ticemi, řetězci nebo slovníky, enumerate() se ukáže jako cenný nástroj. Pochopením a procvičováním enumerate() uděláte významný krok ve zdokonalování svých programovacích dovedností v Pythonu!


Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Vyhledávací pole PowerApps: Jak přidat a přizpůsobit

Naučte se, jak vytvořit vyhledávací pole PowerApps úplně od začátku a přizpůsobit je tak, aby odpovídalo celkovému tématu vaší aplikace.

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Příklad SELECTEDVALUE DAX – Výběr kráječe sklizně

Sklízejte nebo zachycujte hodnotu uvnitř míry a znovu ji použijte v jiném taktu pro dynamické výpočty pomocí SELECTEDVALUE DAX v LuckyTemplates.

Historie verzí v seznamech SharePoint

Historie verzí v seznamech SharePoint

Zjistěte, jak vám historie verzí na SharePointu může pomoci vidět vývoj určitých dat a kolika změn prošla.

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Výběr barevných hexadecimálních kódů pro zprávy LuckyTemplates

Zde je nástroj pro vytváření sestav a vizuálů, výběr barevných hexadecimálních kódů, který můžete použít ke snadnému získání barev pro vaše sestavy LuckyTemplates.

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Dynamický datový výřez v LuckyTemplates pomocí tabulky období

Pomocí tabulky období můžete v přehledu snadno zobrazit časové období jako průřez. Použijte M kód k vytvoření dynamického datového výřezu v LuckyTemplates.

Tabulky proporcí a četností v Excelu

Tabulky proporcí a četností v Excelu

Chtěli jsme se ponořit do tabulek četností v Excelu a také do tabulek proporcí. Podívejte se, co to je a kdy je použít.

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Ako nainštalovať DAX Studio & Tabular Editor v LuckyTemplates

Zistite, ako stiahnuť a nainštalovať DAX Studio a Tabular Editor 3 a ako ich nakonfigurovať na použitie v LuckyTemplates a v Exceli.

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

LuckyTemplates Vizualizácia tvarovej mapy pre priestorovú analýzu

Tento blog obsahuje vizualizáciu Shape Map pre priestorovú analýzu v LuckyTemplates. Ukážem vám, ako môžete efektívne využiť túto vizualizáciu s jej funkciami a prvkami.

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

LuckyTemplates Finančné výkazníctvo: Prideľovanie výsledkov šablónam v každom jednom riadku

V tomto návode predstavujem jedinečný nápad týkajúci sa finančného výkazníctva, ktorý spočíva v prideľovaní výsledkov na vopred určené šablóny tabuliek v rámci LuckyTemplates.

DAX měří v LuckyTemplates pomocí Measure Branching

DAX měří v LuckyTemplates pomocí Measure Branching

Vytvářejte míry DAX v LuckyTemplates pomocí existujících mír nebo vzorců. Tomu říkám technika větvení opatření.