-2

我有一个对象列表。每个对象都有一个属性“优先级”,其值可能是低、中、高。我需要对对象列表进行排序,以便优先级“高”的对象首先出现在列表中,然后是对象优先级“中”,最后是优先级“低”的对象。我知道我可以使用几个 for 循环来做到这一点,但我想要一个快速有效的 Python 解决方案。对不起,但我是 Python 的初学者。

4

2 回答 2

7
score = dict(high=0, medium=1, low=2)
mylist.sort(key=lambda x: score[x.priority])
于 2012-05-10T07:53:44.350 回答
0

非常感谢。赞成 pythonic 解决方案。

我使用了排序的变体。

sorted(myList, key = lambda x : score[x.priority])
于 2015-10-11T09:53:31.503 回答