obseg ()
xrange ()
V nadaljevanju je bila z najnovejšo različico Pythona (3 naprej) umaknjen obseg () in xrange () nato spremenjen v range (). Zdaj v Pythonu 3 obstaja samo ena funkcija za to metodo, tj.e., obseg (). V Pythonu 3 je funkcija range () le še en način izvajanja starejše različice xrange () python 2.x. Tukaj bomo povezali oba.
Xrange ()
Xrange () se uporablja za ustvarjanje zaporedja števil, kot je funkcija range ().
Sintaksa
Sintaksa, ki se uporablja za definiranje xrange (), je:
xrange (začetek, konec, korak)Funkcija se uporablja za določanje obsega številk od (vključeno) do konca (ni vključeno).
Parametri
Sledi seznam zahtevanih parametrov:
Začetek: začetni položaj zaporedja številk
Konec: končni položaj zaporedja številk
Korak: Razlikovanje med dvema zaporednima številkama v nizu.
Primeri
V naslednjem primeru bomo preverili načine definiranja xrange.
Tu bomo določili samo končni položaj.
Tako je končna vrednost nastavljena na 5, nato pa dobimo natisnjen končni položaj, kot je prikazano spodaj:
Zdaj bomo videli način klicanja obsega, sintaksa konca klica bo:
>>> x = xrange (konec)Potem ga bomo dobili natisnjenega.
Dobili bomo obseg v izhodu, kot je prikazano zgoraj.
Zdaj bomo opredelili začetno in končno točko. Tu je začetna točka 2, končna pa 5. Nato smo natisnili začetni in končni položaj, kot je prikazano spodaj:
Po tem bomo ustvarili zaporedje številk od naših začetnih in končnih točk, tj.e., 2 do 5.
>>> y = xrange (začetek, konec)
Na koncu bomo preverili še način določanja začetne točke, koraka in končne točke. Ko smo definirali vse tri parametre; poklicali jih bomo podobno kot spodaj prikazano:
Zdaj, da pokličemo xrange za te tri parametre, bomo uporabili naslednjo sintakso:
>>> z = xrange (začetek, korak, konec)
Obseg ()
Range () se uporablja za ustvarjanje seznama in je hitrejša funkcija za več ponovitev.
Sintaksa
Uporablja se naslednja skladnja:
>>> obseg (začetek, konec, korak)Primeri
Za prvi primer bomo določili končno vrednost. Sintaksa, uporabljena za to, je:
>>> obseg (konec)Torej bomo v spodnjem primeru uporabili 3 kot končno vrednost obsega. Ko ga natisnemo, vrne vrednosti, razen končne vrednosti.
V naslednjem primeru uporabljamo primer opisa začetne in končne točke. Vrednost se bo začela od 1 in končala ob 10 (z izključitvijo). Začetna točka je vključena, končna točka pa izpuščena. Sintaksa je podobna spodnji:
>>> obseg (začetek, konec)Torej definiramo začetno in nato končno točko, ki je 1 oziroma 10.
Zdaj bomo v naslednjem primeru imeli funkcijo step. Funkcija, ki definira vrzel med poljubnima dvema točkama v zaporedju. Vrednost se bo začela od 0 in končala ob 10 (z izključitvijo). Uporabljena sintaksa je podana spodaj:
>>> obseg (začetek, korak, konec)Primer je podan spodaj, kjer je 2 vrednost koraka.
Prednosti
obseg ()
Hitreje je, če je treba ponovitve ponoviti večkrat. range () ima samo vrednosti celoštevilnih predmetov v realnem času. Kar zadeva pomnilnik, se ne izvaja dobro.
xrange ()
Vsakokrat mora znova ustvariti celoštevilski objekt. xrange () ni, ker ne podpira rezin in metod seznama. xrange () zavzame enako količino pomnilnika. Kar zadeva zmogljivost, zlasti kadar uporabniki ponavljajo večjo vrednost obsega, xrange () deluje veliko bolje.
Podobnosti med Python 2 in Python 3 range and xrange
Xrange Pythona 2 ima opisno predstavitev v obliki niza, ki je zelo podobna vrednosti predmeta obsega Python 3.
Vrednost xrange () v Pythonu 2 je ponovljiva, zato je v Python 3 rang ().
xrange () in range () imata vrednosti koraka, konca in začetne točke. V obeh primerih je korak neobvezno polje, prav tako tudi začetna vrednost.
Oba obsega x Python 2 in 3 podpirata dolžino, ki jo lahko indeksiramo naprej ali nazaj. Tu je primer istega:
Razlike med obsegom () in xrange ()
Ker xrange () ovrednoti samo objekt generatorja z vrednostmi, ki jih potrebuje leno vrednotenje, je hitreje implementirati preko obsega (). range () pomaga vrniti seznam in ima vse predmete, ki jih je mogoče uporabiti, medtem ko xrange () vrne predmete, povezane s seznamom, in jih ni mogoče uporabiti zanje, tako da lahko to štejemo kot slabo.
Spremenljivka, uporabljena v funkciji range (), shrani vrednost obsega in tako zavzame veliko pomnilnika v primerjavi z xrange (), ki zaradi spremenljivk zavzame le nekaj pomnilnika. range () vrne objekt obsega, medtem ko xrange () vrne objekt generatorja.
Funkcija obsega (1, 7, 2) bo vrnila izhod [1, 3, 5], vhodni razpon x (1, 7, 2) pa bo ustvaril izhod [1, 3, 5]. Tako lahko domnevamo, da sta si podobna po vzorcu.
Zaključek
range () in xrange () imata različne značilnosti, kot smo že omenili. Vse primerjave, omenjene v tej vadnici, skupaj s primeri, bodo bralcem v pomoč, če bodo bolje izbrali želeno metodo glede na njihove zahteve.