Python的:如何排序使用attrgetter与不区分大小写的对象列表(Python: How t

2019-09-27 01:35发布

self.data = sorted(self.data, key=attrgetter('word'))

self.data是字对象的列表。 字对象有“字”,“定义”,“例如”和“困难”属性。 我想每一个Word对象的“字”字符串进行排序,而上面的代码做,除了它不区分大小写。 我怎么会去使排序不区分大小写?

我从问另一个问题尝试解决方案在这里 ,但是当我试了一下,说:“类型错误:“Word的对象不是标化”。 我能做什么,使其工作?

谢谢。

Answer 1:

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

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


Answer 2:

尝试是这样的:

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

不过,与您可能会好得多简单地使用:

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


文章来源: Python: How to sort a list of objects using attrgetter with case insensitivity