【发布时间】:2016-01-21 09:42:03
【问题描述】:
假设我有一个列表l,其中每个元素都有一个属性time,它存储一个浮点数,表示从某个基准点过去多少秒。每当发生某些事件时,我想从该列表中删除在此事件之前发生超过 T 秒的所有元素,所以目前我所做的是
l = [x in l if x.time > current_time - T]
这似乎是一种缓慢的做事方式。怎样才能更快地做到这一点?这里的元素是按时间排序的,所以我想找到第一个不满足这个条件的元素,例如
for i, x in enumerate(l):
if x.time > current_time - T:
break
l = l[i:]
也许有更好的方法?
【问题讨论】:
标签: python performance list