Gibt es eine elegante und pythische Methode, um das erste und letzte Element in einer for-Schleife einzufangen, die über einen Generator iteriert?Das erste und letzte Element in einem Python für die Schleife abrufen
from calendar import Calendar
cal = Calendar(6)
month_dates = cal.itermonthdates(year, month)
for date in month_dates:
if (is first item): # this is fake
month_start = date
if (is last item): # so is this
month_end = date
Dieser Code versucht, den ersten Tag der Woche der Monat endet am bekommen, und der letzte Tag der Woche der Monat endet am. Beispiel: Für den Monat Juni sollte der Monatsbeginn bis zum 31.05.09 ausgewertet werden. Obwohl es sich eigentlich um einen Tag im Mai handelt, ist es der erste Tag der Woche, an dem der Juni beginnt.
Monat-Daten ist ein Generator, so dass ich das [: -1] Ding nicht tun kann. Was ist ein besserer Weg, damit umzugehen?
+1, vorausgesetzt, Sie month_end zu month_dates [-1] (kein Doppelpunkt) – Triptych
Danke, Triptychon ändern. –
Sehr kleiner Punkt der Nitpickiness: Wie das OP anspielt, gibt itermonthdates Ihnen tatsächlich die Daten auf einem gedruckten Kalender, komplett mit Füllstoffen am Anfang und am Ende, um 7-Tage-Wochen zu machen. Daher ist die maximale Größe der Liste für einen Monat 42. (Ich weiß, die Speicherkapazität moderner Maschinen Stämme die zusätzlichen 11 Daten zu behandeln.;) –