Python

Pomocou funkcie Enumerate v Pythone môžete vytvárať slučky s počítadlami

Pomocou funkcie Enumerate v Pythone môžete vytvárať slučky s počítadlami

Tento článok vysvetlí použitie funkcie „enumerate“ dostupnej v štandardnej knižnici modulov Pythonu. Funkcia Enumerate vám umožňuje priradiť „index“ alebo „počet“ prvkom v ľubovoľnom opakovateľnom objekte. Potom na nich môžete implementovať ďalšiu logiku, pretože budete mať prístup k obom hodnotám a k nim priradenému počtu.

Syntax a základný príklad

Ak ste použili slučku „pre“ v iných programovacích jazykoch, najmä v jazyku „C“ a iných jazykoch so syntaxou štýlu „C“, možno ste v slučke zadali počiatočný index. Pre informáciu, tu je príklad, ako slučka „for“ vyzerá v jazyku „C“ a v ďalších jazykoch s podobnou syntaxou:

pre (int i = 0; i < 10; i++)

printf ("% d \ n", i);

Príkaz loop inicializuje premennú s hodnotou nula, skontroluje, či je nižšia ako prahová hodnota, a po vyhodnotení logiky vo vnútri bloku slučky ju zvýši o jeden počet (ak je splnená podmienka zastavenia). Týmto spôsobom môžete použiť index a priradiť ho k ľubovoľným objektom uvedeným v bloku slučiek. Na porovnanie, tu je príklad, ako vyzerá slučka for s rovnakým výsledkom v Pythone:

pre i v rozsahu (0, 10):
tlač (i)

Funkcia „range“ v Pythone vám umožňuje určiť postupnosť číselných rozsahov, ktorá má predvolený krok 1. Hodnotu kroku môžete zmeniť zadaním tretieho argumentu. Druhý argument vo funkcii „rozsah“ sa používa na nastavenie prahu pre podmienku zastavenia. Obidve ukážky kódu produkujú nasledujúci výstup:

0
1
2
3
4
5
6
7
8
9

Tieto slučky fungujú dobre, ak chcete vygenerovať iba nejakú číselnú postupnosť a spojiť ich s nejakou logikou vo vnútri príkazu slučky. Možno však budete musieť použiť inú vnorenú slučku alebo použiť funkciu „výnos“ na ľubovoľnom opakovateľnom type, aby ste im mohli priradiť nejaký sledovateľný počet. Metóda „enumerate“ uľahčuje priraďovanie indexov k opakovateľným položkám v jednom príkaze, čím eliminuje potrebu spustenia viacerých vnorených slučiek. Pozrite sa na túto ukážku kódu:

čísla = ["nula", "jedna", "dve", "tri", "štyri", "päť"]
enumerated_numbers = enumerate (numbers)
pre index, položka v enumerated_numbers:
tlač (index, položka)

Prvý príkaz definuje novú premennú nazvanú „čísla“ a priradí jej iterovateľnú položku (typ zoznamu). Druhé vyhlásenie ukazuje použitie funkcie „enumerate“, keď k nej zadáte iteráciu ako povinný argument. Tretí príkaz prevádza premennú „enumerated_numbers“ na objekt typu zoznamu. V predvolenom nastavení funkcia „enumerate“ generuje objekt typu „enumerate“ a nie iterovateľný typ, takže ho musíte previesť. Po spustení ukážky kódu uvedenej vyššie by ste mali získať nasledujúci výstup:

[(0, 'nula'), (1, 'jeden'), (2, 'dva'), (3, 'tri'), (4, 'štyri'), (5, 'päť')]

Funkcia „enumerate“ priradí každému prvku iterovateľný typ a vytvorí n-tice so spárovanými hodnotami. V predvolenom nastavení počet začína od nuly.

Teraz, keď ste každému prvku priradili číslo v iterovateľnom type, môžete ho ľahko pretočiť bez písania vnorených príkazov:

čísla = ["nula", "jedna", "dve", "tri", "štyri", "päť"]
enumerated_numbers = enumerate (numbers)
pre index, položka v enumerated_numbers:
tlač (index, položka)

Vyššie uvedená ukážka kódu vyprodukuje nasledujúci výstup:

0 nula
1 jeden
2 dva
3 tri
4 štyri
5 päť

Môžete skrátiť kód pomocou vloženej funkcie „enumerate“, ako je to zobrazené v ukážke nižšie:

čísla = ["nula", "jedna", "dve", "tri", "štyri", "päť"]
pre index položka v zozname (čísla):
tlač (index, položka)

Používanie funkcie Enumerate s iným počiatočným indexom

Funkcia „enumerate“ má voliteľný argument, kde môžete určiť počiatočný index. Predvolene je to nula, ale môžete to zmeniť pomocou argumentu „štart“:

čísla = ["jeden", "dva", "tri", "štyri", "päť"]
pre index položku v zozname (čísla, začiatok = 1):
tlač (index, položka)

V druhom výroku sa na zmenu východiskového bodu používa argument „start = 1“. Po spustení vzorky kódu uvedenej vyššie by ste mali dostať nasledujúci výstup:

1 jeden
2 dva
3 tri
4 štyri
5 päť

Priradenie indexu s krokmi

V prvej časti tohto článku sa zobrazuje syntax slučky „for“ v jazyku „C“, kde môžete definovať kroky medzi každým ďalším počtom alebo indexom. Funkcia „enumerate“ v Pythone nemá k dispozícii žiadny takýto argument, takže nemôžete určiť krok medzi počtom. Môžete skutočne napísať svoju vlastnú logiku na implementáciu krokov do vymenovaného bloku slučky „pre“. Existuje však spôsob, ako implementovať vlastné kroky napísaním minimálneho kódu. Nasledujúci príklad ukazuje implementáciu krokov pomocou funkcií „zip“ a „range“:

čísla = ["nula", "dva", "štyri", "šesť"]
pre index, položka v zip (rozsah (0, 7, 2), čísla):
tlač (index, položka)

Funkcia „zip“ vám umožňuje vytvárať páry výberom prvkov, ktoré majú rovnaký index, z dvoch alebo viacerých opakovaných záznamov. Funkcia „zip“ tu teda vyzdvihne prvok z iterovateľného vráteného z funkcie „range (0, 7, 2)“ a ďalší prvok zo zoznamu „čísel“ a potom ich oba spáruje do n-tice. Konečným výsledkom je identická implementácia ako funkcia „enumerate“, ale s vlastnými krokmi zadanými ako tretí argument vo funkcii „range (0, 7, 2)“ (v tomto prípade 2). Po spustení vzorky kódu uvedenej vyššie by ste mali dostať nasledujúci výstup:

0 nula
2 dva
4 štyri
6 šesť

Záver

Funkcia „enumerate“ v Pythone vám umožňuje písať výstižný kód priradením číselnej sekvencie prvkom v opakovateľnom objekte. To je naozaj užitočné, ak chcete sledovať index položiek vo vnútri opakovateľného typu. Ak chcete „vymenovať“ iterovateľné typy pomocou vlastných krokov, použite funkciu „zip“ vysvetlenú v poslednom príklade.

Hry Ako zvýšiť rýchlosť FPS v systéme Linux?
Ako zvýšiť rýchlosť FPS v systéme Linux?
FPS znamená Počet snímok za sekundu. Úlohou FPS je merať snímkovú frekvenciu pri prehrávaní videa alebo herných výkonoch. Jednoducho povedané, počet n...
Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...
Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...