2012-05-10 74 views
-2

我有一个对象列表。每个对象都有一个属性“优先级”,其值可以是低,中,高。我需要对对象列表进行排序,以便优先级为“高”的对象首先出现在列表中,然后优先级为“中”的对象,最后是优先级为“低”的对象。我知道我可以使用少量for循环来完成此操作,但是我想要一个pythonic解决方案,它的速度和效率都很高。但是我是python的初学者。根据属性的三个不同的值对python中的对象列表进行排序?

+0

http://wiki.python.org/moin/HowTo/Sorting – San4ez

回答

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

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

我使用了排序变体。

sorted(myList, key = lambda x : score[x.priority]) 
相关问题