Python xrange: So generiert man Zahlenfolgen in Python

    Avatarbild von Perica Glavas
    Perica Glavas

    veröffentlicht am: 14.08.2020
    zuletzt aktualisiert am: 02.02.2023

    Die Verwendung von Python xrange im Überblick

    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 betrachten.

    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, sondern ein xrange-Objekt wieder. 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 über denselben Inhalt verfügen.

    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 Strings 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 beiden Funktionen ist nahezu identisch. 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 hingegen 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 arbeitet als die xrange()-Funktion.

    😩 Gelangweilt von den Udemy & YouTube-Tutorials?!

    Lerne spielerisch Python und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.

    TP Star TP Star TP Star TP Star TP Star

    "Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."

    - Lennart Sparbier

    100% kostenlos registrieren · keine Kreditkarte notwendig

    👋 Wir warten bereits auf dich!

    Lerne das, was du wirklich brauchst.

    Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.

    Logo von Python
    Logo von PyTorch
    Logo von Pandas
    Logo von Matplotlib
    Logo von Java
    Logo von NumPy
    Mehr erfahren

    100% kostenlos registrieren · keine Zahlungsdaten notwendig