Skip to main content
 首页 » 编程设计

使用 key=lambda 的 Python 排序得到 TypeError

2025年05月04日13daizhj

我正在尝试根据每个对象的数据属性值对 Python 3.4 中的对象列表进行排序。如果我使用

db[count].sort(key=lambda a: a.data) 

一切正常。但是,我希望排序不区分大小写,所以我使用

db[count].sort(key=lambda a: a.data.lower) 

但后来我明白了

db[count].sort(key=lambda a: a.data.lower) TypeError: unorderable types: builtin_function_or_method() < builtin_function_or_method()

有什么想法吗?

请您参考如下方法:

key 必须是可返回要排序的值的可调用对象。在您的情况下,它返回另一个可调用的 a.data.lower。您需要调用 lower 才能获取值,因此正确的形式是:

db[count].sort(key=lambda a: a.data.lower())