Python:如何使用attrgetter进行不区分大小写的对象列表排序
self.data = sorted(self.data, key=attrgetter('word'))
self.data 是一个包含 Word 对象的列表。每个 Word 对象都有 'word'(单词)、'definition'(定义)、'example'(例子)和 'difficulty'(难度)这些属性。我想根据每个 Word 对象的 'word' 字符串进行排序,以上的代码可以做到这一点,但它对大小写不敏感。请问我该如何让排序不区分大小写呢?
我试过了另一个问题中的解决方案,在这里,但是当我尝试时,它显示“TypeError: 'Word' object is not subscriptable”(类型错误:'Word' 对象不可下标访问)。我该怎么做才能让它正常工作呢?
谢谢。
2 个回答
1
试试下面这个:
self.data = sorted(self.data, key=lambda w: attrgetter('word')(w).lower())
不过,使用这个可能会更好:
self.data = sorted(self.data, key=lambda w: w.word.lower()
2
你可以自己写一个 key
函数:
self.data = sorted(self.data, key = lambda w: w.word.lower())