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ů.