2012-10-27 4 views

Antwort

5

Sie sind fast auf der Linie. Dies ist, wie Sie es auf einer Liste zu tun: -

your_list = [1, 2, 3] 
for eachItem in your_list: 
    print eachItem 

Wenn Sie einen bestimmten Bereich iteriert werden soll: -

for i in xrange(10): 
    print i 

Um einen Schrittwert geben Sie einen dritten Parameter verwenden können, so in Ihr Fall wäre es: -

for i in xrange(2 * CONST, 1): 
    print i 

Aber man kann nur einen integer Wert als Schrittwert geben.

Wenn Sie float Zuwachs verwenden möchten, würden Sie Ihren Bereich ein wenig ändern müssen: -

for i in xrange(200 * CONST): 
    print i/100.0 
+0

Ich schlage vor, Bereich für xrange weil Bereich tatsächlich schafft ein Array Platzverschwendung – ajon

+0

Thx, du hast mir einen Punkt, wie das zu tun. – MrSil

+0

@MrSil. Gern geschehen :) Du solltest den Update-Code nehmen. Ich habe fälschlicherweise im letzten Code einen falschen Bereich geschrieben. Jetzt korrigiert. :) –

5
for i in xrange(200*CONST): 
    i = i/100.0 
4

Schreiben Sie Ihre eigene Bereich Generator. Dies hilft Ihnen, ganz einfach mit nicht-ganzzahligen Schrittwerten umzugehen, und zwar über Ihr gesamtes Programm hinweg, um mehrere Probleme derselben Art zu lösen. Es ist auch lesbarer.

def my_range(start, end, step): 
    while start <= end: 
     yield start 
     start += step 

for x in my_range(1, 2 * CONST, 0.01): 
    #do something 

For-loop reference

+1

Das sieht am richtigsten aus; Sowohl 'range' als auch' xrange' arbeiten mit Ganzzahlen und ein benutzerdefinierter bereichsartiger Generator ermöglicht es, dies zu umgehen. Siehe auch http://stackoverflow.com/questions/477486/python-decimal-range-step-value – Kos

+1

Das Hinzufügen von vielen Floats ist ein Rezept für Ungenauigkeit. Der folgende Link zeigt eine bessere Möglichkeit, einen Float-Bereich zu erstellen: http://code.activestate.com/recipes/66472/ – Dunes

+0

Ja, so ist es schön, und es ist einfach, diese Funktion in einen Generator zu verwandeln. – Kos

3

numpy hat eine Methode, die verwendet werden können, eine Reihe von Hin- und Herbewegungen zu schaffen.

from numpy import arange 

for x in arange(0, 2*CONST, 0.01): 
    do_something(x)