1
我和日期列表:Python的比較日期範圍列表
dates = [
{'start': 2015-02-12 08:30, 'end': 2015-02-12 13:30, 'name': 'a'},
{'start': 2015-02-12 09:00, 'end': 2015-02-12 11:45, 'name': 'b'},
{'start': 2015-02-12 09:30, 'end': 2015-02-12 10:30, 'name': 'c'},
{'start': 2015-02-12 10:30, 'end': 2015-02-12 17:30, 'name': 'd'},
{'start': 2015-02-12 11:00, 'end': 2015-02-12 20:30, 'name': 'e'},
{'start': 2015-02-12 12:30, 'end': 2015-02-12 18:30, 'name': 'f'},
]
,我需要得到輸出(合併這些日期的時間間隔)是這樣的:
output = [
{'start': 2015-02-12 08:30, 'end': 2015-02-12 09:00, 'name': 'a'},
{'start': 2015-02-12 09:00, 'end': 2015-02-12 09:30, 'name': 'a + b'},
{'start': 2015-02-12 09:30, 'end': 2015-02-12 10:30, 'name': 'a + b + c'},
{'start': 2015-02-12 10:30, 'end': 2015-02-12 11:00, 'name': 'a + b + d'},
{'start': 2015-02-12 11:00, 'end': 2015-02-12 11:45, 'name': 'a + b + d + e'},
{'start': 2015-02-12 11:45, 'end': 2015-02-12 12:30, 'name': 'a + d + e'},
{'start': 2015-02-12 12:30, 'end': 2015-02-12 13:30, 'name': 'a + d + e + f'},
{'start': 2015-02-12 13:30, 'end': 2015-02-12 17:30, 'name': 'd + e + f '},
{'start': 2015-02-12 17:30, 'end': 2015-02-12 18:30, 'name': 'e + f'},
{'start': 2015-02-12 18:30, 'end': 2015-02-12 20:30, 'name': 'f'},
]
每個輸出start
和end
日期必須按順序,如果一個項目start
和end
日期彼此交叉,他們應該合併。
我試圖在環
for x, left in enumerate(dates):
for y, right in enumerate(dates):
# HERE GOES THE LOGIC..
# Tried to compare each X and Y item with each other
# But don't know how to keep used items "in mind"
# And then create new list to output
continue
使用循環,但沒有找到一個解決方案來解決這個問題。 我在等待幫助解答,謝謝。
感謝@FMc的答案,這是真的很有幫助。 – gordon33 2015-02-12 09:23:24