【问题标题】:How to merge 2 sublists in a list of time intervals if the times are successive?如果时间是连续的,如何在时间间隔列表中合并 2 个子列表?
【发布时间】:2020-06-08 09:58:18
【问题描述】:

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

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.x algorithm list-manipulation


【解决方案1】:

试试这个:

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']]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 2016-09-30
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多