Python:如何使用不区分大小写的attrgetter对对象列表进行排序

Python:如何使用不区分大小写的attrgetter对对象列表进行排序,python,key,case-insensitive,attr,sorted,Python,Key,Case Insensitive,Attr,Sorted,self.data是Word对象的列表。单词对象具有“单词”、“定义”、“示例”和“难度”属性。我想按每个word对象的“word”字符串进行排序,上面的代码就是这样做的,只是它不区分大小写。我如何使排序不区分大小写 我尝试了另一个问题的解决方案,但当我尝试时,它说“TypeError:‘Word’object不可下标”。我该怎么做才能让它工作 谢谢。您可以编写自己的键函数: self.data = sorted(self.data, key=attrgetter('word')) 尝试以下方

self.data是Word对象的列表。单词对象具有“单词”、“定义”、“示例”和“难度”属性。我想按每个word对象的“word”字符串进行排序,上面的代码就是这样做的,只是它不区分大小写。我如何使排序不区分大小写

我尝试了另一个问题的解决方案,但当我尝试时,它说“TypeError:‘Word’object不可下标”。我该怎么做才能让它工作


谢谢。

您可以编写自己的
函数:

self.data = sorted(self.data, key=attrgetter('word'))
尝试以下方法:

self.data = sorted(self.data, key = lambda w: w.word.lower())
不过,有了这一点,您可能会更好地使用:

self.data = sorted(self.data, key=lambda w: attrgetter('word')(w).lower())
self.data = sorted(self.data, key=lambda w: w.word.lower()