我有两个包含时间戳的列表。我想比较并使用时间戳创建一个新列表。
comp = ['2018-07-21,11:37:20', '2018-07-21,11:52:57', '2018-07-21,12:08:20', '2018-07-21,12:41:28', '2018-07-21,12:56:46', '2018-07-21,13:12:09', '2018-07-22,11:12:50', '2018-07-22,11:29:18', '2018-07-22,11:44:44', '2018-07-22,12:08:57', '2018-07-22,12:24:18', '2018-07-22,12:39:35']
startDate = ['2018-07-21,11:37:07', '2018-07-22,11:12:41']
我正在尝试创建
start = ['2018-07-21,11:37:07', '2018-07-21,11:37:07', '2018-07-21,11:37:07', '2018-07-21,11:37:07', '2018-07-21,11:37:07', '2018-07-21,11:37:07', '2018-07-22,11:12:41', '2018-07-22,11:12:41', '2018-07-22,11:12:41', '2018-07-22,11:12:41', '2018-07-22,11:12:41', '2018-07-22,11:12:41']
与comp
的长度相同,但是使用startDate
中的元素。根据{{1}}是否大于或等于start[i]
,startDate
将是comp[i]
中的元素之一。
我当前拥有的代码是:
startDate
但是start = []
for x in comp:
for y in range(len(startDate)-1):
if x >= startDate[y] and x < startDate[y+1]:
start.append(startDate[y])`
的长度只有6(我希望前六个元素)
任何帮助,我们将不胜感激!
答案 0 :(得分:2)
for x in comp:
for y in range(len(startDate)-1):
if x >= startDate[y] and x < startDate[y+1]:
start.append(startDate[y])
else:
start.apped(startDate[y+1])
这应该有效。
答案 1 :(得分:0)
comp = ['2018-07-21,11:37:20', '2018-07-21,11:52:57', '2018-07-21,12:08:20', '2018-07-21,12:41:28', '2018-07-21,12:56:46', '2018-07-21,13:12:09',
'2018-07-22,11:12:50', '2018-07-22,11:29:18', '2018-07-22,11:44:44', '2018-07-22,12:08:57', '2018-07-22,12:24:18', '2018-07-22,12:39:35']
startDate = ['2018-07-21,11:37:07', '2018-07-22,11:12:41']
start = [startDate[0] if startDate[0]<x<startDate[1] else startDate[1] for x in comp]
答案 2 :(得分:0)
start = [y if x>=y and x<startDate[startDate.index(y) + 1] else startDate[startDate.index(y) + 1] for y in startDate[:-1] for x in comp]