Мне сложно сортировать список кортежей. Я хотел бы отсортировать по длине строки в списке.
Например:
l = [(99,'bbc', 121),(33,'abcd', 231),(44,'zb', 148), (23,'abcde',221)]
если я сортирую по элементу 1:
l.sort(key=itemgetter(1), reverse=True)
Это будет сортировать по алфавиту ранжирования строк, а не по длине. Я предпочел бы сортировать на месте и обращать сортировку с самой длинной строкой.
Я могу использовать лямбда и cmp,
l.sort(lambda x,y: cmp(len(x[1]), len(y[1])), reverse=True)
но есть ли более элегантный или пифонический способ использования ключа и/или itemgetter?