嵌套For-loop Python中的时间比较

时间:2018-08-07 17:51:43

标签: python python-3.x nested

我有两个包含时间戳的列表。我想比较并使用时间戳创建一个新列表。

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(我希望前六个元素)

任何帮助,我们将不胜感激!

3 个答案:

答案 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]