2011-10-05 37 views
1
self.data = sorted(self.data, key=attrgetter('word')) 

self.data是Word对象的列表。单词对象具有“单词”,“定义”,“示例”和“难度”属性。我想按照每个Word对象的“单词”字符串进行排序,上面的代码除了不区分大小写外,其他都可以。我将如何去使分类不区分大小写?Python:如何使用不区分大小写的attrgetter对对象列表进行排序

我试过从另一个问题here问题的解决方案,但是当我尝试它时,它说“TypeError:'Word'对象不是可以下载的”。我能做些什么才能使它工作?

谢谢。

回答

2

您可以编写自己的key功能:

self.data = sorted(self.data, key = lambda w: w.word.lower()) 
+0

谢谢!这工作完美 – Jigglypuff

1

试着这么做:

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

虽然,与你很可能会好得多简单地使用:

self.data = sorted(self.data, key=lambda w: w.word.lower() 
相关问题