Hallo zusammen,
ich hätte mal eine Frage zwecks einer Schleife.
Ich habe folgenden Zeitintervall:
Vom 1970:01:01 bis zum 2010:06:01
Jetzt würde ich gern eine Schleife haben, welche mir ausgibt:
1970:01:01
1970:02:01
1970:03:01
...
2010:05:01
2010:06:01
gibt es dafür eine Möglichkeit?
Gruß
Martin
Zeit - Schleife
Hallo Martin,
sofern ich Dich richtig verstanden habe, suchst Du etwas in der Art:
Gruß
mutetella
sofern ich Dich richtig verstanden habe, suchst Du etwas in der Art:
Code: Alles auswählen
import datetime
def schleife(start, ende):
datelist = []
while start <= ende:
datelist.append(start)
if start.month < 12:
start = start.replace(month=start.month + 1)
else:
start = start.replace(month=1, year=start.year + 1)
return(datelist)
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

Hatten wir neulich erst: http://www.python-forum.de/viewtopic.php?f=1&t=23132
Oder so:
Code: Alles auswählen
import datetime
def walk_months(startdate, enddate):
akt = startdate
while akt <= enddate:
yield akt.strftime("%Y:%m:%d")
if akt.month < 12:
akt = akt.replace(month=akt.month + 1)
else:
akt = akt.replace(year = akt.year+1, month = 1)
if __name__ == '__main__':
start = datetime.date(1970,1,1)
end = datetime.date.today()
for d in walk_months(start, end):
print d
@.robert
Ich stehe immer wieder vor der Frage: Liste oder Generator? Kannst Du mir sagen, welche Vorteile gerade auch in diesem Beispiel ein Generator gegenüber einer Liste hat? In meinem Kalenderprogramm müssen ja immer wieder Datumsbereiche durchlaufen werden. Ist da ein Generator performanter oder anderweitig von Vorteil?
Gruß
mutetella
Ich stehe immer wieder vor der Frage: Liste oder Generator? Kannst Du mir sagen, welche Vorteile gerade auch in diesem Beispiel ein Generator gegenüber einer Liste hat? In meinem Kalenderprogramm müssen ja immer wieder Datumsbereiche durchlaufen werden. Ist da ein Generator performanter oder anderweitig von Vorteil?
Gruß
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)

Ein Generator ist Speicherschonender. Mit der Listen-Methode hältst du ja eine Liste mit allen Werten im Speicher, mit dem Generator immer nur den aktuellen Wert.
Über die Performance kann ich nichts fundiertes aussagen
Über die Performance kann ich nichts fundiertes aussagen

Und willst du deine Lösung nicht zeigen? Vielleicht ist die ja besser als die von mutetella oder mir, und wenn noch mal jemand vor einem ähnlichen Problem steht, findet er hier direkt mehrere Lösungen zum Vergleichen.makuee hat geschrieben:hab es aber nach einigem getüftel selber hinbekommen.
Hallo
Als LC:
Gruß Karo
Als LC:
Code: Alles auswählen
datliste = [ "%s:%02d:01" %(j,m) for j in range(1970,2011) for m in range(1,13)][:-6]
@karolus
Cool! Hier noch die Variante für datetime.date()-Objekte:
Gruß
mutetella
Cool! Hier noch die Variante für datetime.date()-Objekte:
Code: Alles auswählen
datliste = [datetime.date(j, m, 1) for j in range(1970,2011) for m in range(1,13)][:-6]
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit
)
