Python: как отсортировать список объектов с помощью attrgetter с учетом регистра - PullRequest
1 голос
/ 05 октября 2011
self.data = sorted(self.data, key=attrgetter('word'))

self.data - это список объектов Word. Объекты Word имеют атрибуты «слово», «определение», «пример» и «сложность». Я хочу отсортировать строки «word» каждого объекта Word, и код выше делает это, за исключением того, что он не учитывает регистр. Как мне сделать сортировку без учета регистра?

Я попробовал решения из другого вопроса, заданного здесь , но когда я попробовал его, он сказал: «TypeError: объект« Word »не может быть подписан». Что я могу сделать, чтобы это сработало?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Вы можете написать свою собственную key функцию:

self.data = sorted(self.data, key = lambda w: w.word.lower())
1 голос
/ 05 октября 2011

Попробуйте что-то вроде:

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

Хотя, с этим вам, вероятно, будет гораздо лучше, просто используя:

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