Python确保对象出现在列表的末尾

MFB*_*MFB 1 python sorting list

我有一个Job课程.这是一个包含一些示例作业的简化版本:

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]
Run Code Online (Sandbox Code Playgroud)

在我的应用程序中,作业jobs有点随机地添加到列表(从数据库),但我需要确保任何Delete作业最后发生.我能想到的最简单的方法是确保将Delete作业移动到列表的末尾,然后按顺序处理列表.但是,当排序条件是类的属性时,我不确定如何做到这一点,并且是否有任何保证在处理作业时按顺序迭代列表?任何建议都会很棒.

Joh*_*ooy 6

jobs.sort(key=lambda x:x.type=="Delete")
Run Code Online (Sandbox Code Playgroud)

键将False用于"复制"或"扫描"作业以及True"删除"作业.因为True> False"删除"作业将被排序到最后