Python 合并两个不同的日期时间间隔列表

Python 合并两个不同的日期时间间隔列表,python,algorithm,datetime,intervals,Python,Algorithm,Datetime,Intervals,我正在尝试合并两个列表。每个列表都有一个开始日期、结束日期和一个值。结果列表必须同时具有这两个值。当间隔不匹配时,需要拆分列表2中的间隔。我能够每天都这样做,并从两个列表中获取值。然而,这是非常低效的,因此它无法处理大型列表。我想知道最有效的方法是什么 下面是一个例子: 清单1 [ ['ALL', 'ALL', 2], ['2013-11-24', '2013-11-30', 4], ['2013-12-24', '2014-01-01', 3], ] 清单2 [ ['

我正在尝试合并两个列表。每个列表都有一个开始日期、结束日期和一个值。结果列表必须同时具有这两个值。当间隔不匹配时,需要拆分列表2中的间隔。我能够每天都这样做,并从两个列表中获取值。然而,这是非常低效的,因此它无法处理大型列表。我想知道最有效的方法是什么

下面是一个例子:

清单1

[
  ['ALL', 'ALL', 2],
  ['2013-11-24', '2013-11-30', 4],
  ['2013-12-24', '2014-01-01', 3],  
]
清单2

[
    ['2013-07-08', '2013-08-29', '1800.00'],
    ['2013-08-30', '2013-09-06', '1800.00'],    
    ['2013-10-01', '2013-10-31', '1500.00'],
    ['2013-11-24', '2013-12-03', '400.00'],
    ['2013-12-24', '2014-01-03', '500.00'], 
]
结果列表

[   
    ['2013-07-08', '2013-08-29', '1800.00', 2],
    ['2013-08-30', '2013-09-06', '1800.00', 2], 
    ['2013-10-01', '2013-10-31', '1500.00', 2], 

    ['2013-11-24', '2013-11-30', '400.00', 4],
    ['2013-12-01', '2013-12-03', '400.00', 2],

    ['2013-12-24', '2014-01-01', '500.00', 3],  
    ['2014-01-02', '2014-01-03', '500.00', 2]   
]

我将感谢任何帮助。谢谢。

当您收到这些列表时,它们是否已排序?是的。按开始日期排序。创建一个循环,查看每个列表中的下一个元素。如果它们相同,则合并并转到两个列表中的下一个元素。否则,如果它们重叠,请处理。否则,处理前面的元素,然后转到该列表中的下一个元素,但保持在另一个列表中的同一元素上。