Krajta

Python xrange vs. rozsah

Python xrange vs. rozsah
Do Pythonu verze 2.x, v tomto jazyce byly generovány seznam celých čísel v poskytnutém rozsahu celkem dvě základní metody. Níže jsou uvedeny dvě metody:

rozsah ()
xrange ()

Pohybem vpřed, s nejnovější verzí Pythonu (od 3), byl range () stažen a xrange () byl poté změněn na range (). Nyní v Pythonu 3 existuje pro tuto metodu pouze jedna funkce, tj.E., rozsah (). V Pythonu 3 je funkce range () jen dalším způsobem implementace starší verze xrange () pythonu 2.X. Zde uvedeme tyto dva do souvislosti.

Xrange ()

Funkce xrange () se používá k vytvoření číselné řady, jako je funkce range ().

Syntax

Syntaxe použitá k definování xrange () je:

xrange (začátek, konec, krok)

Tato funkce slouží k definování rozsahu čísel od (je zahrnuto) do konce (není zahrnuto).

Parametry

Následuje seznam požadovaných parametrů:

Start: Počáteční pozice číselné řady
Konec: Koncová pozice číselné řady
Krok: Rozdíl mezi dvěma po sobě jdoucími čísly v řadě.

Příklady

V následujícím příkladu zkontrolujeme způsoby, jak definovat xrange.

Zde budeme specifikovat pouze koncovou pozici.

Koncová hodnota je tedy nastavena na 5 a poté vytiskneme koncovou pozici, jak je znázorněno níže:

Nyní uvidíme způsob volání rozsahu, syntaxe volání end bude:

>>> x = xrange (end)

Pak to vytiskneme.

Dostaneme rozsah na výstupu, jak je uvedeno výše.

Nyní definujeme počáteční i koncový bod. Zde je počáteční bod 2 a koncový bod 5. Poté jsme vytiskli počáteční a koncovou pozici, jak je znázorněno níže:

Poté vytvoříme posloupnost čísel z našich počátečních a konečných bodů, tj.E., 2 až 5.

>>> y = xrange (začátek, konec)

Nakonec zkontrolujeme metodu definování počátečního bodu, kroku a koncového bodu. Jakmile jsme definovali všechny tři parametry; budeme je volat podobným způsobem jako níže:

Nyní pro volání xrange pro tyto tři parametry použijeme následující syntaxi:

>>> z = xrange (začátek, krok, konec)

Rozsah ()

Range () se používá k vytvoření seznamu a je rychlejší funkcí pro více iterací.

Syntax

Používá se následující syntaxe:

>>> rozsah (začátek, konec, krok)

Příklady

V prvním případě budeme definovat konečnou hodnotu. Syntaxe použitá pro toto je:

>>> rozsah (konec)

V níže uvedeném příkladu tedy jako konečnou hodnotu rozsahu použijeme 3. Když to vytiskneme, vrátí hodnoty, s výjimkou konečné hodnoty.

V následujícím příkladu používáme příklad popisu počátečního a koncového bodu. Hodnota začíná od 1 a končí v 10 (vyloučením). Počáteční bod je zahrnut, ale koncový bod je vynechán. Syntaxe je podobná té, která je uvedena níže:

>>> rozsah (začátek, konec)

Definujeme tedy počáteční bod a poté koncový bod, který je 1, respektive 10.

Nyní v následujícím příkladu budeme mít funkci step. Funkce, která definuje mezeru mezi libovolnými dvěma body v posloupnosti. Hodnota začíná od 0 a končí v 10 (vyloučením). Použitá syntaxe je uvedena níže:

>>> rozsah (začátek, krok, konec)

Příklad je uveden níže, kde 2 je hodnota kroku.

Výhody

rozsah ()

Je to rychlejší, pokud se iterace mají provádět vícekrát. range () má pouze celočíselné hodnoty objektů v reálném čase. Pokud jde o paměť, neprovádí se dobře.

xrange ()

Musí vždy znovu vytvořit celočíselný objekt. xrange () není, protože nepodporuje řezy a metody seznamu. xrange () zabírá stejné množství paměti. Takže pokud jde o výkon, zvláště když uživatelé iterují s větší hodnotou rozsahu, xrange () funguje mnohem lépe.

Podobnosti mezi rozsahem a rozsahem Pythonu 2 a Pythonu 3

Xrange Pythonu 2 má popisné vyjádření ve formě řetězce, který je velmi podobný hodnotě objektu rozsahu Pythonu 3.

Hodnota xrange () v Pythonu 2 je iterovatelná, takže je rang () v Pythonu 3.

xrange () a range () mají hodnoty kroku, konce a počátečního bodu. V obou případech je krok volitelným polem, stejně tak počáteční hodnota.

Oba xrange Pythonu 2 a 3 podporují délku, kterou lze indexovat v dopředném nebo opačném pořadí. Zde je příklad toho samého:

Rozdíly mezi rozsahem () a xrange ()

Protože xrange () vyhodnocuje pouze objekt generátoru s hodnotami potřebnými pro líné vyhodnocení, je rychlejší implementovat přes range (). range () pomáhá vrátit seznam a má všechny objekty, které lze použít, zatímco xrange () vrací objekty spojené se seznamem a nelze je na ně použít, abychom jej mohli počítat jako nevýhodu.

Proměnná použitá ve funkci range () ukládá hodnotu rozsahu a zabírá tedy hodně paměti ve srovnání s xrange (), která kvůli proměnným zabírá jen část paměti. range () vrací objekt rozsahu, zatímco xrange () vrací objekt generátoru.

Funkce range (1, 7, 2) vrátí výstup [1, 3, 5] a vstupní rozsah x (1, 7, 2) vytvoří výstup [1, 3, 5]. Takto můžeme předpokládat, že jsou si podobné ve vzoru.

Závěr

range () a xrange () mají různé vlastnosti, jak je popsáno výše. Všechna srovnání uvedená v tomto výukovém programu spolu s příklady pomohou čtenářům lépe si vybrat preferovanou metodu na základě jejich požadavků.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...