Python xrange vs. range

Python Xrange Vs Range



Bis zur Python-Version 2.x gab es in dieser Sprache insgesamt zwei zugrunde liegende Methoden, um die Liste der Ganzzahlen innerhalb eines bereitgestellten Bereichs zu generieren. Im Folgenden sind die beiden Methoden aufgeführt:

Bereich ()
xrange ()







Mit der neuesten Python-Version (ab 3) wurde range() zurückgezogen und xrange() wurde dann in range() geändert. Jetzt gibt es in Python 3 nur eine Funktion für diese Methode, nämlich range(). In Python 3 ist die Funktion range() nur eine weitere Möglichkeit, die ältere Version von xrange() von Python 2.x zu implementieren. Hier werden wir die beiden in Beziehung setzen.



Xrange ()

Die xrange()-Funktion wird verwendet, um eine Zahlenfolge wie die range()-Funktion zu erstellen.



Syntax

Die Syntax zur Definition von xrange() lautet:





xrange(Anfang,Ende,Schritt)

Die Funktion wird verwendet, um den Zahlenbereich von (ist enthalten) bis zum Ende (ist nicht enthalten) zu definieren.

Parameter

Nachfolgend finden Sie die Liste der erforderlichen Parameter:



 Start: Startposition der Zahlenfolge
 Ende: Endposition der Zahlenfolge
 Schritt: Die Unterscheidung zwischen zwei aufeinanderfolgenden Zahlen in der Reihe.

Beispiele

Im folgenden Beispiel werden wir die Möglichkeiten zur Definition von xrange überprüfen.

Hier geben wir nur die Endposition an.

Der Endwert wird also auf 5 gesetzt, und dann erhalten wir die Endposition gedruckt, wie unten gezeigt:

Jetzt sehen wir die Methode zum Aufrufen von range, die Syntax zum Aufrufen von end lautet:

>>>x= xrange(Ende)

Dann lassen wir es drucken.

Wir erhalten den Bereich in der Ausgabe, wie oben gezeigt.

Jetzt definieren wir sowohl den Start- als auch den Endpunkt. Hier ist der Startpunkt 2 und der Endpunkt 5. Wir haben dann die Start- und Endpositionen gedruckt, wie unten gezeigt:

Danach erstellen wir eine Zahlenfolge aus unseren Start- und Endpunkten, d. h. 2 bis 5.

>>>und= xrange(Anfang,Ende)

Schließlich werden wir die Methode zum Definieren des Startpunkts, des Schritts und des Endpunkts überprüfen. Sobald wir alle drei Parameter definiert haben; wir werden sie ähnlich wie die unten gezeigte Methode aufrufen:

Um nun den xrange für diese drei Parameter aufzurufen, verwenden wir die folgende Syntax:

>>>Mit= xrange(Anfang,Schritt,Ende)

Bereich ()

Range() wird verwendet, um eine Liste zu erstellen und ist eine schnellere Funktion für mehrere Iterationen.

Syntax

Die folgende Syntax wird verwendet:

>>> Bereich(Anfang,Ende,Schritt)

Beispiele

Für den ersten Fall definieren wir den Endwert. Die dafür verwendete Syntax lautet:

>>> Bereich(Ende)

Im folgenden Beispiel verwenden wir also 3 als Endwert des Bereichs. Wenn es gedruckt wird, gibt es die Werte ohne den Endwert zurück.

Im folgenden Beispiel verwenden wir das Beispiel der Beschreibung von Start- und Endpunkt. Der Wert beginnt bei 1 und endet bei 10 (indem Sie ihn ausschließen). Der Startpunkt ist enthalten, aber der Endpunkt wird weggelassen. Die Syntax ähnelt der unten angegebenen:

>>> Bereich (Anfang,Ende)

Wir definieren also den Startpunkt und dann den Endpunkt, der 1 bzw. 10 ist.

Im folgenden Beispiel haben wir nun die Schrittfunktion. Die Funktion, die die Lücke zwischen zwei beliebigen Punkten innerhalb der Sequenz definiert. Der Wert beginnt bei 0 und endet bei 10 (indem Sie ihn ausschließen). Die verwendete Syntax ist unten angegeben:

>>> Bereich (Anfang,Schritt,Ende)

Das Beispiel ist unten angegeben, wobei 2 der Schrittwert ist.

Vorteile

Bereich ()

Es ist schneller, wenn die Iterationen mehrmals durchgeführt werden sollen. range() hat nur die Echtzeit-Integer-Objektwerte. In Bezug auf den Speicher wird es nicht gut ausgeführt.

xrange()

Es muss das Integer-Objekt jedes Mal neu erstellen. xrange() ist dies nicht, da es keine Slices und Listenmethoden unterstützt. xrange() benötigt die gleiche Menge an Speicher. Was die Leistung betrifft, insbesondere wenn Benutzer über einen größeren Bereichswert iterieren, schneidet xrange() viel besser ab.

Ähnlichkeiten zwischen Python 2- und Python 3-Bereich und xrange

xrange von Python 2 hat eine beschreibende Darstellung in Form der Zeichenfolge, die dem Bereichsobjektwert von Python 3 sehr ähnlich ist.

Der Wert von xrange() in Python 2 ist iterierbar, ebenso wie rang() in Python 3.

xrange() und range() haben beide einen Schritt-, End- und Startpunktwert. In beiden Fällen ist step ein optionales Feld, ebenso der Startwert.

Sowohl xrange von Python 2 als auch 3 unterstützen Längen, die in Vorwärts- oder Rückwärtsreihenfolge indiziert werden können. Hier ist ein Beispiel für dasselbe:

Unterschiede zwischen range() und xrange()

Da xrange() nur das Generator-Objekt mit den Werten auswertet, die von der Lazy-Evaluation benötigt werden, ist es schneller über range() zu implementieren. range() hilft bei der Rückgabe der Liste und enthält alle verwendbaren Objekte, während xrange() die einer Liste zugeordneten Objekte zurückgibt und nicht auf sie angewendet werden kann, sodass wir dies als Nachteil werten können.

Die in der Funktion range() verwendete Variable speichert den Wert von range und benötigt daher viel Speicher im Vergleich zu xrange(), das aufgrund der Variablen nur einen Teil des Speichers beansprucht. range() gibt ein Range-Objekt zurück, während xrange() ein Generator-Objekt zurückgibt.

Die Funktion range (1, 7, 2) gibt die Ausgabe [1, 3, 5] zurück und die Eingabe xrange(1, 7, 2) erzeugt die Ausgabe [1, 3, 5]. So können wir davon ausgehen, dass sie sich im Muster ähneln.

Abschluss

range() und xrange() haben beide unterschiedliche Eigenschaften, wie oben beschrieben. Alle in diesem Tutorial erwähnten Vergleiche, zusammen mit den Beispielen, werden den Lesern helfen, ihre bevorzugte Methode basierend auf ihren Anforderungen besser auszuwählen.