Python xrange versus bereik

Python Xrange Vs Range



Tot de Python-versie 2.x waren er in totaal twee onderliggende methoden die in deze taal werden gebruikt om de lijst met gehele getallen binnen een opgegeven bereik te genereren. De twee methoden worden hieronder vermeld:

bereik ()
xbereik ()







Vooruit, met de nieuwste versie van Python (3 en hoger), werd bereik () ingetrokken en werd xrange () vervolgens gewijzigd in bereik (). Nu is er in Python 3 maar één functie voor deze methode, namelijk bereik (). In Python 3 is de functie range () gewoon een andere manier om de oudere versie van xrange() van python 2.x te implementeren. Hier zullen we de twee met elkaar in verband brengen.



X-range ()

De xrange () wordt gebruikt om een ​​getallenreeks te maken, zoals de functie range ().



Syntaxis

De syntaxis die wordt gebruikt om xrange () te definiëren is:





xrange(begin,einde,stap)

De functie wordt gebruikt om het bereik van getallen te definiëren vanaf (is inbegrepen) tot het einde (is niet inbegrepen).

Parameters:

Hieronder volgt de lijst met vereiste parameters:



 Start: Startpositie van de nummerreeks
 End: Eindpositie van de nummerreeks
 Step: Het onderscheid tussen twee opeenvolgende getallen in de reeks.

Voorbeelden

In het volgende voorbeeld zullen we de manieren bekijken om xrange te definiëren.

Hier specificeren we alleen de eindpositie.

Dus de eindwaarde is ingesteld op 5, en dan krijgen we de eindpositie afgedrukt, zoals hieronder weergegeven:

Nu zullen we de methode voor het aanroepen van bereik zien, de syntaxis om het einde aan te roepen zal zijn:

>>>x= xrange(einde)

Dan laten we het drukken.

We krijgen het bereik in de uitvoer, zoals hierboven weergegeven.

Nu zullen we zowel het begin- als het eindpunt definiëren. Hier is het startpunt 2 en het eindpunt is 5. Vervolgens hebben we de start- en eindposities afgedrukt, zoals hieronder weergegeven:

Hierna zullen we een reeks van de nummers maken van onze begin- en eindpunten, d.w.z. 2 tot 5.

>>>en= xrange(begin,einde)

Ten slotte zullen we de methode bekijken om het startpunt, de stap en het eindpunt te definiëren. Zodra we alle drie de parameters hebben gedefinieerd; we zullen ze noemen, vergelijkbaar met de onderstaande methode:

Om nu de xrange voor deze drie parameters aan te roepen, gebruiken we de volgende syntaxis:

>>>Met= xrange(begin,stap,einde)

Bereik ()

Bereik () wordt gebruikt om een ​​lijst te maken en is een snellere functie voor meerdere iteraties.

Syntaxis

De volgende syntaxis wordt gebruikt:

>>> bereik(begin,einde,stap)

Voorbeelden

Voor het eerste geval zullen we de eindwaarde definiëren. De syntaxis die hiervoor wordt gebruikt is:

>>> bereik(einde)

Dus in het onderstaande voorbeeld gebruiken we 3 als de eindwaarde van het bereik. Wanneer we het laten afdrukken, retourneert het de waarden, exclusief de eindwaarde.

In het volgende voorbeeld gebruiken we het voorbeeld van het beschrijven van het begin- en eindpunt. De waarde begint bij 1 en eindigt bij 10 (door deze uit te sluiten). Het startpunt is opgenomen, maar het eindpunt is weggelaten. De syntaxis is vergelijkbaar met die hieronder:

>>> bereik (begin,einde)

We definiëren dus het startpunt en vervolgens het eindpunt, dat respectievelijk 1 en 10 is.

In het volgende voorbeeld hebben we nu de stapfunctie. De functie die de opening tussen twee willekeurige punten in de reeks definieert. De waarde begint bij 0 en eindigt bij 10 (door deze uit te sluiten). De gebruikte syntaxis wordt hieronder gegeven:

>>> bereik (begin,stap,einde)

Het voorbeeld wordt hieronder gegeven, waarbij 2 de stapwaarde is.

Voordelen:

bereik ()

Het is sneller als de iteraties meerdere keren moeten worden gedaan. range () heeft alleen de realtime integer-objectwaarden. Qua geheugen presteert het niet goed.

xrange()

Het moet het integer-object elke keer opnieuw maken. xrange() is dat niet omdat het geen slices en lijstmethoden ondersteunt. xrange() neemt dezelfde hoeveelheid geheugen in beslag. Dus wat de prestaties betreft, vooral wanneer gebruikers een grotere bereikwaarde herhalen, presteert xrange() veel beter.

Overeenkomsten tussen Python 2 en Python 3 range en xrange

De xrange van Python 2 heeft een beschrijvende weergave in de vorm van de tekenreeks, die erg lijkt op de waarde van het bereikobject van Python 3.

De waarde van xrange() in Python 2 is itereerbaar, net als rang() in Python 3.

xrange() en range() hebben beide een stap-, eind- en beginpuntwaarde. In beide gevallen is stap een optioneel veld, net als de startwaarde.

Beide xrange van Python 2 en 3 ondersteunen lengte die kan worden geïndexeerd in voorwaartse of omgekeerde volgorde. Hier is een voorbeeld van hetzelfde:

Verschillen tussen range() en xrange()

Omdat xrange() alleen het generatorobject evalueert met de waarden die nodig zijn voor de luie evaluatie, is het sneller om over het bereik() te implementeren. range () helpt bij het retourneren van de lijst en heeft alle objecten die kunnen worden gebruikt, terwijl xrange() de objecten retourneert die bij een lijst horen en er niet op kunnen worden toegepast, zodat we het als een nadeel kunnen beschouwen.

De variabele die wordt gebruikt in de functie range () slaat de waarde van bereik op en neemt dus veel geheugen in beslag in vergelijking met xrange() dat vanwege de variabelen slechts een deel van het geheugen in beslag neemt. range () retourneert een bereikobject, terwijl xrange() een generatorobject retourneert.

De functie bereik (1, 7, 2) zal de output [1, 3, 5] teruggeven en de input xrange (1, 7, 2) zal de output [1, 3, 5] produceren. Dat is hoe we kunnen aannemen dat ze vergelijkbaar zijn in het patroon.

Conclusie

range () en xrange() hebben beide verschillende kenmerken, zoals hierboven besproken. Alle vergelijkingen die in deze tutorial worden genoemd, samen met de voorbeelden, zullen de lezers helpen om hun voorkeursmethode beter te kiezen op basis van hun vereisten.