有没有办法list
根据“亲密关系”来获取 a 中的前一个项目?例如:
[ Range(start=datetime.datetime(2012, 1, 1, 0, 0, 0), end=datetime.datetime(2012, 1, 15, 0, 0, 0)),
Range(start=datetime.datetime(2012, 2, 1, 0, 0, 0), end=datetime.datetime(2012, 2, 15, 0, 0, 0)),
Range(start=datetime.datetime(2012, 3, 1, 0, 0, 0), end=datetime.datetime(2012, 3, 15, 0, 0, 0))]
上面是一个list
包含namedtuple
s(称为Range
),每个包含一个开始日期和一个结束日期。
我知道这可以使用循环等以线性方式完成,但我想知道它是否可以更有效地完成?
示例输入/输出:
如果我输入datetime.datetime(2012, 1, 3, 0, 0, 0)
,它应该返回最接近的上一个开始日期时间:
Range(start=datetime.datetime(2012, 1, 1, 0, 0, 0), end=datetime.datetime(2012, 1, 15, 0, 0, 0))
如果我输入datetime.datetime(2012, 1, 27, 0, 0, 0)
,它应该返回与上面相同的内容:
Range(start=datetime.datetime(2012, 1, 1, 0, 0, 0), end=datetime.datetime(2012, 1, 15, 0, 0, 0))
如果我输入datetime.datetime(2012, 2, 14, 0, 0, 0)
,它应该返回:
Range(start=datetime.datetime(2012, 2, 1, 0, 0, 0), end=datetime.datetime(2012, 2, 15, 0, 0, 0))