基于属性的三个不同值对python中的对象列表进行排序?

时间:2012-05-10 07:50:27

标签: python sorting jquery-ui-sortable

我有一个对象列表。每个对象都有一个属性“priority”,其值可以是low,medium,high。我需要对对象列表进行排序,以便优先级为“high”的对象在列表中排在第一位。然后优先级为“medium”的对象和最后优先级为“low”的对象。我知道我可以使用少量for循环来做到这一点,但我想要一个快速有效的pythonic解决方案。但是我是python的初学者。

2 个答案:

答案 0 :(得分:5)

score = dict(high=0, medium=1, low=2)
mylist.sort(key=lambda x: score[x.priority])

答案 1 :(得分:0)

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

我使用了已排序的变体。

sorted(myList, key = lambda x : score[x.priority])