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