根據'親密度',有沒有方法根據list
獲取上一個項目?例如:Python:根據親密度從列表中獲取上一個項目
[ 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))]
以上是含有namedtuple
S(稱爲Range
)一個list
,每個包含的開始日期和結束日期。
我知道這可以使用循環等以線性方式完成,但我想知道它是否可以更有效地完成?
實施例的輸入/輸出:
如果我輸入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))
如果我輸入,它應該返回與上述相同的:
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))
@MartijnPieters有一個腦f,然後,糾正 – johneth