我有一个Job类。下面是一个简化版本的一些样本作业:Python确保对象出现在列表的末尾
class Job:
def __init__(self, type):
self.type = type
def __repr__(self):
return '< %s >' % self.type
job1 = Job('Copy')
job2 = Job('Delete')
job3 = Job('Scan')
jobs = [job1,job2,job3]
在我的应用程序,作业被添加到jobs
列表(从DB)有些随意,但我需要确保任何Delete
工作发生最后一次。我能想到的最简单的方法是确保将Delete
作业移动到列表的末尾,然后按顺序处理列表。然而,当排序条件是一个类的属性时,我不确定如何做到这一点,并且是否有任何保证,这些列表将在处理作业时按顺序迭代?任何建议都会很棒。
如果你需要一个特定的顺序,你可以只使用['heapq '](http://docs.python.org/library/heapq.html)并给予删除操作最低优先级。 – 2012-07-05 23:58:19
谢谢@JeffMercado,最后不需要除Delete之外的命令,但我会检查heapq – MFB 2012-07-06 00:01:27
我会尝试实施“最后处理”堆栈。 – 2012-07-06 00:09:43