首页 > 解决方案 > 如果时间是连续的,如何在时间间隔列表中合并 2 个子列表?

问题描述

鉴于此人在预订时的间隔时间日历:

list = [['10:00','11:30'],['12:30','14:30'],['14:30','15:00'],['16:00','17:00'],['17:30','20:00'],['20:00','21:00']]

示例:此人在 10:00 至 11:30 预订,11:30 至 12:30 空闲。ps:每个子列表都是一个约会。我想制作一个可以将列表排列为如下所示的python脚本:

output =[['10:00','11:30'],['12:30','15:00'],['16:00','17:00'],['17:30','21:00']]

当第一个的结束时间等于第二个的结束时间时,我们合并连续的约会。

标签: python-3.xalgorithmlist-manipulation

解决方案


尝试这个:

list = [['10:00','11:30'],['12:30','14:30'],['14:30','15:00'],['16:00','17:00'],['17:30','20:00'],['20:00','21:00']]


merged = []
for appt in list:
  if len(merged) == 0:
    merged.append(appt)
  else:
    last = merged[-1]
    if appt[0] == last[1]:
      last[1] = appt[1]
    else:
      merged.append(appt)

print(merged)

给出:

[['10:00', '11:30'], ['12:30', '15:00'], ['16:00', '17:00'], ['17:30', '21:00']]

推荐阅读