我正在使用优先级队列(heapq
)datetime.datetime
作为优先级。
如果我有要搜索的 startTime 和 endTime ,那么从这个列表中提取元素子集的最 Pythonic 方法是什么。(我无法更改原始列表,所以我必须创建一个新列表并返回,或者返回一个迭代器)
以下是我所拥有的示例:
>>> import heapq
>>> timeLine = []
>>> from datetime import datetime
>>> heapq.heappush(timeLine, (datetime.now(),'A'))
>>> heapq.heappush(timeLine, (datetime.now(),'B'))
>>> heapq.heappush(timeLine, (datetime.now(),'C'))
>>> timeLine
[(datetime.datetime(2013, 2, 8, 15, 25, 14, 720000), 'A'), (datetime.datetime(2013, 2, 8, 15, 25, 30, 575000), 'B'), (datetime.datetime(2013, 2, 8, 15, 25, 36, 959000), 'C')]
真正的应用程序列表是巨大的。