我正在尝试根据条目的ID对条目列表进行排序。
我尝试了这段代码但是没有用:
entries.sort(cmp=None, key=Entry.id, reverse=False)
列表中的对象是具有id
的条目这是我得到的错误: TypeError:'InstrumentedAttribute'对象不可调用
有什么想法吗?
提前致谢!
答案 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)