Python

Python xrange vs. obseg

Python xrange vs. obseg
Do različice Python 2.x, v tem jeziku sta bili skupaj uporabljeni dve osnovni metodi za ustvarjanje seznama celih števil v določenem obsegu. Spodaj sta navedeni dve metodi:

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.

Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...