Python

Python xrange vs. rozsah

Python xrange vs. rozsah
Až do verzie Python verzie 2.x, v tomto jazyku sa na generovanie zoznamu celých čísel v poskytnutom rozsahu použili celkovo dve základné metódy. Nižšie sú uvedené dve metódy:

rozsah ()
xrange ()

Vpred s najnovšou verziou Pythonu (od 3 rokov) bol range () stiahnutý a xrange () bol potom zmenený na range (). Teraz v Pythone 3 existuje pre túto metódu iba jedna funkcia, t.e., rozsah (). V Pythone 3 je funkcia range () iba ďalším spôsobom implementácie staršej verzie xrange () pythonu 2.X. Tu uvedieme tieto dva do súvislosti.

Xrange ()

Xrange () sa používa na vytvorenie číselnej postupnosti, ako je funkcia range ().

Syntax

Syntax použitá na definovanie xrange () je:

xrange (začiatok, koniec, krok)

Funkcia slúži na definovanie rozsahu čísel od (je v cene) do konca (nie je v cene).

Parametre

Nasleduje zoznam požadovaných parametrov:

Štart: Východisková pozícia číselnej postupnosti
Koniec: Koncová pozícia číselnej postupnosti
Krok: Rozdiel medzi dvoma po sebe nasledujúcimi číslami v sérii.

Príklady

V nasledujúcom príklade skontrolujeme spôsoby definovania rozsahu xrange.

Tu upresníme iba koncovú pozíciu.

Koncová hodnota je teda nastavená na 5 a potom dostaneme vytlačenú koncovú pozíciu, ako je to znázornené nižšie:

Teraz uvidíme spôsob volania rozsahu, syntax na volanie end bude:

>>> x = xrange (end)

Potom si to necháme vytlačiť.

Dostaneme rozsah na výstupe, ako je uvedené vyššie.

Teraz definujeme počiatočný a koncový bod. Tu je začiatočný bod 2 a konečný bod 5. Potom sme vytlačili začiatočnú a koncovú pozíciu, ako je uvedené nižšie:

Potom budeme vytvárať postupnosť čísel z našich počiatočných a konečných bodov, t.j.e., 2 až 5.

>>> y = xrange (začiatok, koniec)

Na záver sa pozrieme na spôsob definovania počiatočného bodu, kroku a konečného bodu. Keď sme definovali všetky tri parametre; budeme ich nazývať podobným spôsobom ako je uvedené nižšie:

Teraz, aby sme zavolali xrange pre tieto tri parametre, použijeme nasledujúcu syntax:

>>> z = xrange (začiatok, krok, koniec)

Rozsah ()

Range () sa používa na vytvorenie zoznamu a je rýchlejšou funkciou pre viacnásobné iterácie.

Syntax

Používa sa nasledujúca syntax:

>>> rozsah (začiatok, koniec, krok)

Príklady

Pre prvý prípad budeme definovať konečnú hodnotu. Použitá syntax je:

>>> rozsah (koniec)

Takže v príklade uvedenom nižšie budeme ako konečnú hodnotu rozsahu používať hodnotu 3. Keď ho dostaneme vytlačený, vráti hodnoty, s výnimkou konečnej hodnoty.

V nasledujúcom príklade používame príklad popisu počiatočného a cieľového bodu. Hodnota sa začína od 1 a končí sa o 10 (vylúčením). Počiatočný bod je zahrnutý, ale konečný bod je vynechaný. Syntax je podobná tej, ktorá je uvedená nižšie:

>>> rozsah (začiatok, koniec)

Definujeme teda začiatočný bod a potom koncový bod, ktorý je 1, respektíve 10.

Teraz v nasledujúcom príklade budeme mať funkciu step. Funkcia, ktorá definuje medzeru medzi ľubovoľnými dvoma bodmi v postupnosti. Hodnota bude začínať od 0 do 10 (vylúčením). Použitá syntax je uvedená nižšie:

>>> rozsah (začiatok, krok, koniec)

Príklad je uvedený nižšie, kde 2 predstavuje krokovú hodnotu.

Výhody

rozsah ()

Je to rýchlejšie, ak sa iterácie majú robiť viackrát. range () má iba hodnoty celých objektov v reálnom čase. Pokiaľ ide o pamäť, nevykonáva sa dobre.

xrange ()

Musí zakaždým znovu vytvoriť celočíselný objekt. xrange () nie je, pretože nepodporuje metódy rezov a zoznamov. xrange () zaberá rovnaké množstvo pamäte. Čo sa teda týka výkonu, najmä keď používatelia iterujú s väčšou hodnotou rozsahu, výkon xrange () je oveľa lepší.

Podobnosti medzi rozsahom a rozsahom Python 2 a Python 3

Xrange Pythonu 2 má popisné znázornenie vo forme reťazca, ktoré je veľmi podobné hodnote rozsahu objektu Pythonu 3.

Hodnota xrange () v Pythone 2 je iterovateľná, preto je rang () v Pythone 3.

xrange () a range () majú hodnoty kroku, konca a začiatočného bodu. V obidvoch prípadoch je krok voliteľným poľom, rovnako tak je to aj s počiatočnou hodnotou.

Obidva rozsahy Pythonu 2 a 3 podporujú dĺžku, ktorú je možné indexovať v poradí dopredu alebo dozadu. Tu je príklad toho istého:

Rozdiely medzi rozsahom () a rozsahom ()

Pretože funkcia xrange () vyhodnocuje iba objekt generátora s hodnotami potrebnými na lenivé vyhodnotenie, je rýchlejšie ju implementovať v rozsahu (). range () pomáha vrátiť zoznam a obsahuje všetky objekty, ktoré je možné použiť, zatiaľ čo xrange () vracia objekty spojené so zoznamom a nemožno ich na ne použiť, aby sme ho mohli považovať za nevýhodu.

Premenná použitá vo funkcii range () ukladá hodnotu rozsahu a zaberá tak veľa pamäte v porovnaní s xrange (), ktorá kvôli premenným zaberá iba časť pamäte. range () vráti objekt rozsahu, zatiaľ čo xrange () vráti objekt generátora.

Funkcia range (1, 7, 2) vráti výstup [1, 3, 5] a vstupný rozsah (1, 7, 2) vyprodukuje výstup [1, 3, 5]. Takto môžeme predpokladať, že majú podobný vzor.

Záver

rozsah () a xrange () majú rôzne vlastnosti, ako je uvedené vyššie. Všetky porovnania uvedené v tomto tutoriále spolu s príkladmi pomôžu čitateľom lepšie si zvoliť preferovanú metódu na základe svojich požiadaviek.

Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...