मैं datetimes का एक क्रमबद्ध सूची मिल गया है: (दिन के अंतराल के साथ)स्प्लिट सूची
list_of_dts = [
datetime.datetime(2012,1,1,0,0,0),
datetime.datetime(2012,1,1,1,0,0),
datetime.datetime(2012,1,2,0,0,0),
datetime.datetime(2012,1,3,0,0,0),
datetime.datetime(2012,1,5,0,0,0),
]
और मैं प्रत्येक दिन के लिए एक सूची में उन्हें विभाजित करने के लिए करना चाहते हैं:
result = [
[datetime.datetime(2012,1,1,0,0,0), datetime.datetime(2012,1,1,1,0,0)],
[datetime.datetime(2012,1,2,0,0,0)],
[datetime.datetime(2012,1,3,0,0,0)],
[], # Empty list for no datetimes on day
[datetime.datetime(2012,1,5,0,0,0)]
]
एल्गोरिदमिक रूप से, कम से कम ओ (एन) प्राप्त करना संभव होना चाहिए।
शायद निम्नलिखित की तरह कुछ: (यह स्पष्ट रूप से प्रबंधन नहीं करती है याद दिनों, और पिछले डीटी चला जाता है, लेकिन यह एक शुरुआत है)
def dt_to_d(list_of_dts):
result = []
start_dt = list_of_dts[0]
day = [start_dt]
for i, dt in enumerate(list_of_dts[1:]):
previous = start_dt if i == 0 else list_of_dts[i-1]
if dt.day > previous.day or dt.month > previous.month or dt.year > previous.year:
# split to new sub-list
result.append(day)
day = []
# Loop for each day gap?
day.append(dt)
return result
विचार?
datetime_value साथ सूचियों का एक dict का उपयोग की एक सूची है कुंजी के रूप में .date()। –