Просто преобразуйте datetime.timedelta
объекты в строки, убедившись, что d1
вычитается из d2
.
lst = [['00:10:00', '00:08:00'], ['00:05:00', '00:04:00']]
for t1, t2 in lst:
d1 = datetime.datetime.strptime(t1, "%H:%M:%S")
d2 = datetime.datetime.strptime(t2, "%H:%M:%S")
diff = str(d1 - d2) # Only change to your current source code
end_lst = [item + [diff] for item in lst]
print(end_lst) # [['00:10:00', '00:08:00', '0:02:00'], ['00:05:00', '00:04:00', '0:01:00']]
Вдохновленный @ferhen, вы также можете использовать списочное понимание, чтобы это более кратко, хотя читаемость, возможно, принесена в жертву.
end_lst = [[t1, t2, str(datetime.datetime.strptime(t1, "%H:%M:%S") - datetime.datetime.strptime(t2, "%H:%M:%S"))] for t1, t2 in lst]
print(end_lst) # [['00:10:00', '00:08:00', '0:02:00'], ['00:05:00', '00:04:00', '0:01:00']]
Теперь, это предполагает, что t1
представляет время, которое позже, чем t2
. Если нет, вы можете получить такие результаты, как '-1 day, 23:59:00'
в своем вложенном списке.