10
我在排序元组列表时遇到困难。我想按照列表中字符串的长度进行排序。Python按元组中的值排序列表的长度
例如:
l = [(99,'bbc', 121),(33,'abcd', 231),(44,'zb', 148), (23,'abcde',221)]
如果我排序元件1:
l.sort(key=itemgetter(1), reverse=True)
这将排序的串的字母排序,而不是长度。我宁愿排序就地和反向排序,最长的字符串第一。
我可以使用lambda和CMP,
l.sort(lambda x,y: cmp(len(x[1]), len(y[1])), reverse=True)
但有一个更优雅,或Python的方式使用密钥和/或itemgetter?
是的,这是更好。并且采用'list'所指向的点,将编辑来反映。 – drexiya