Python使用外部键对列表进行排序

时间:2012-12-28 15:43:06

标签: python

我正在尝试根据条目的ID对条目列表进行排序。

我尝试了这段代码但是没有用:

entries.sort(cmp=None, key=Entry.id, reverse=False)

列表中的对象是具有id

的条目

这是我得到的错误: TypeError:'InstrumentedAttribute'对象不可调用

有什么想法吗?

提前致谢!

2 个答案:

答案 0 :(得分:7)

key必须是一个获取列表条目并返回用于比较的值的函数。

作为lambda的替代方案,请使用operator.attrgetter

entries.sort(key=attrgetter('id'))

答案 1 :(得分:3)

正如错误告诉你的那样,Key需要是一个函数,或者更确切地说,是一个可调用的对象。

entries.sort(cmp=None, key=(lambda x:x.id), reverse=False)