Ein Beitrag aus der Kategorie Python ist nicht Java. Das Schlüsselwort for hat in Python eine andere Bedeutung als in Java.
In Java leitet for eine Schleife ein, es folgen die Initialisierung einer Zählervariablen, eine Abbruchbedingung und eine Schrittweite.
for (int i=0; i<10; i++){...}
Um die Verwirrung zu steigern ist das Schlüsselwort for zusätzlich noch ein Iterator über z.B. ein Array oder eine Liste:
List Items = new LinkedList();
for (Integer Item : Items){...}
Hierbei wird der Code innerhalb der Schleife für jedes Element innerhalb der Liste einmal ausgeführt.
In Python ist das Schlüsselwort for immer eine Iteration über eine Liste bzw. eine anderes iterierbares Objekt.
for item in items:
...
Hierbei wird der Code hinter dem for für jedes Element in items einmal ausgeführt.
Dennoch gibt es in Python die Möglichkeit, zumindestens Java ähnliche for Schleifen zu Programmieren. Hierzu dienen die eingebauten Funktionen range und xrange, die (im Ergebnis) das gleiche tun.
for i in xrange(10):
...
Ist äquivalent zur Java for Schleife
for (int i = 0; i<10; i++){...}
for i in xrange(1, 5):
...
Ist äquivalent zur Java for Schleife
for (int i = 1; i<5; i++){...}
Mit xrange kann also das Verhalten einer Vorschleife mit beliebigem Start- und Endwert erreicht werden, lediglich eine Schrittweite ist nicht so einfach anzugeben.
In den gezeigten Beispielen kann xrange problemlos durch range ersetzt werden, das Verhalten der Schleifen ändert sich dadurch nicht.
Der unterschied zwischen beiden Funktionen besteht lediglich darin, dass range eine Liste generiert und diese vollständig im Speicher ablegt. xrange arbeitet etwas komplizierter mit einem iterierbaren Objekt, welches weniger Speicher verbraucht.
In Java leitet for eine Schleife ein, es folgen die Initialisierung einer Zählervariablen, eine Abbruchbedingung und eine Schrittweite.
for (int i=0; i<10; i++){...}
Um die Verwirrung zu steigern ist das Schlüsselwort for zusätzlich noch ein Iterator über z.B. ein Array oder eine Liste:
List
for (Integer Item : Items){...}
Hierbei wird der Code innerhalb der Schleife für jedes Element innerhalb der Liste einmal ausgeführt.
In Python ist das Schlüsselwort for immer eine Iteration über eine Liste bzw. eine anderes iterierbares Objekt.
for item in items:
...
Hierbei wird der Code hinter dem for für jedes Element in items einmal ausgeführt.
Dennoch gibt es in Python die Möglichkeit, zumindestens Java ähnliche for Schleifen zu Programmieren. Hierzu dienen die eingebauten Funktionen range und xrange, die (im Ergebnis) das gleiche tun.
for i in xrange(10):
...
Ist äquivalent zur Java for Schleife
for (int i = 0; i<10; i++){...}
for i in xrange(1, 5):
...
Ist äquivalent zur Java for Schleife
for (int i = 1; i<5; i++){...}
Mit xrange kann also das Verhalten einer Vorschleife mit beliebigem Start- und Endwert erreicht werden, lediglich eine Schrittweite ist nicht so einfach anzugeben.
In den gezeigten Beispielen kann xrange problemlos durch range ersetzt werden, das Verhalten der Schleifen ändert sich dadurch nicht.
Der unterschied zwischen beiden Funktionen besteht lediglich darin, dass range eine Liste generiert und diese vollständig im Speicher ablegt. xrange arbeitet etwas komplizierter mit einem iterierbaren Objekt, welches weniger Speicher verbraucht.
Keine Kommentare:
Kommentar veröffentlichen