Du liest:
Python xrange: So generiert man Zahlenfolgen in Python

Python xrange: So generiert man Zahlenfolgen in Python

von Pero
14.08.2020

Die xrange()-Funktion ist eine integrierte Funktion in der Python Version 2.x. Die Funktion wird verwendet, um eine Folge von Zahlen zwischen dem angegebenen Start- und Endpunkt zu erzeugen. Sie kann auf verschiedene Weisen verwendet werden. Mittels einiger Beispiele werden wir in diesem Artikel die Python xrange()-Funktion näher besprechen.

Die Python xrange Funktion

Oft brauchen wir eine Folge von Zahlen für logische Probleme oder zum Iterieren mit einer for-Schleife. Die xrange()-Funktion ist in Python 2.x dafür der üblichste Weg.

Die xrange()-Funktion hat dabei drei Argumente, von denen immer mindestens eins angegeben werden muss. Das erste und zweite Argument sind jeweils der Start- und Endpunkt der Sequenz. Versuchen wir dies anhand eines Beispiels zu verstehen.

obj = xrange(2,10)

Im obigen Beispiel startet die Folge bei 2. Die letzte Zahl ist direkt vor der 10, also die 9. Führen wir den Code aus und schauen was passiert.

Python xrange Beispielzahlenfolge

Die xrange()-Funktion gibt allerdings keine direkte Folge von Zahlen wieder, sondern ein xrange-Objekt. Das Objekt ist iterierbar. Also können wir mittels einer for-Schleife die Elemente einsehen.

obj = xrange(2,10)
for i in obj:
	print(i)
Durch ein Python xrange-Objekt iterieren

Die Folge startet also bei 2 und endet auf 9.

Wir können das Objekt auch in eine der vielen Python Sammlungen umwandeln. Zum Beispiel können wir dafür ein Tuple oder eine List verwenden. Hierzu nutzen wir den jeweiligen Konstruktor.

obj = xrange(2,10)
list(obj)
tuple(obj)
xrange-Objekt in Tuple und List umwandeln.

Wir können eine Sequenz auch nur mit einem Argument erstellen.

obj1 = xrange(10)

Das bedeutet auch, dass die unten aufgeführten Objekte denselben Inhalt haben.

obj1 = xrange(10)
obj2 = xrange(0,10)

Die for-Schleife bei einem xrange-Objekt

Die xrange()-Funktion wird häufig zum iterieren mit for-Schleifen verwendet.

for i in xrange(0,10):
	print(i)

Der Wert für i entspricht im ersten Lauf 0 und am Ende liegt er auf 9.

for-Schleife auf einem xrange-Objekt.

Das ist ein kleines Beispiel für den Nutzen der xrange()-Funktion. Meistens wird die Funktion verwendet, um die Elemente von verschiedenen Sammlungen über den Index zu adressieren.

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in xrange(0,10):
	print(list1[i])

Die for-Schleife wird über die Liste iterieren.

Durch eine Liste mit Hilfe eines xrange-Objekts iterieren.

Der dritte Parameter: Schritte

Wie bereits zuvor erwähnt, können der xrange()-Funktion drei Argumente übergeben werden. Wir haben gesehen, wie wir die Funktion mit einem oder zwei Argumenten nutzen können. Jetzt schauen wir uns das Verhalten bei der Nutzung eines dritten Arguments an.

Das dritte Argument definiert die Schritte zwischen den einzelnen Werten der Folge. Starten wir beispielsweise bei 0 und der Endpunkt der Sequenz ist 10. Der Startpunkt wird bei 0 liegen und der zweite liegt bei 2. Das dritte Element wird 4 sein, usw.

obj1 = xrange(0, 10, 2)
list(obj1)

Die Abstufung in dem xrange-Objekt ist 2.

Zahlenfolge mit vordefinierten Stufen.

Python xrange mit Strings

Bis jetzt haben wir nur besprochen, wie wir die xrange()-Funktion mit Sammlungen wie der List und dem Tuple nutzen können. Allerdings sind Strings auch iterierbar, wir können mittels der xrange()-Funktion also auch über die einzelnen Buchstaben eines String iterieren.

string1 = "Hello World!"
for i in xrange(0, len(string1)):
	print(string1[i])

Anstand die Funktion mittels einer Zahl aufzurufen, nutzen wir die len()-Funktion. Diese gibt die Länge des Strings aus und die xrange()-Funktion wird diesen als Endpunkt festlegen.

Durch ein String mit Hilfe einer Zahlenfolge iterieren.

Unterschied zwischen range und xrange

Die xrange()-Funktion existiert in Python 3.x nicht. Sie wurde durch die range()-Funktion abgelöst. Das Verhalten der Funktionen sich nahezu ähnlich. Allerdings existieren kleine Unterschiede, die wir im Folgenden besprechen.

Der größte Unterschied ist das Rückgabeobjekt. Die xrange()-Funktion gibt ein Objekt des eigenen Typs zurück. Die range()-Funktion gibt eine List zurück.

Wenn wir die xrange()-Funktion nutzen, und beispielsweise eine Folge von 0 bis 1000 erstellen, wird jedes Element einzeln erzeugt. Die range()-Funktion hingegen erzeugt einmalig alle Zahlen. Das spart natürlich eine Menge Speicherplatz.

Wenn wir also Python 3.x nutzen, sollten wir die range()-Funktion statt der xrange()-Funktion nutzen.

Falls du mehr über die range-Funktion erfahren möchtest, kannst du dir gerne unseren Artikel zu diesem Thema durchlesen.

Zusammenfassung

Die xrange()-Funktion ist einfach und wichtig in Python 2.x. Wir können damit eine einfache Folge von Zahlen erzeugen. Außerdem können wir die Funktion nutzen, um mittels einer for-Schleife zu iterieren. Neben allen Sammlungen funktioniert dies auch mit Strings.

Da das Pythonteam die Version 2.x von Python ab dem 1. Januar 2020 beendet hat, werden wir vermutlich die Version 3.x nutzen. In dieser sollten wir die range()-Funktion nutzen, da diese deutlich effizienter als die xrange()-Funktion arbeitet.



Bislang gibt es keine Kommentare. Markier dein Revier und sei der Erste!

Schreibe einen Kommentar

Das könnte dich auch interessieren