如何根据子列表的长度对列表进行排序

时间:2015-05-20 09:58:44

标签: python list python-2.7

我有以下列表

a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]

我想根据子列表的长度对列表进行排序。 结果应该是:

a = [['o'],['d','e'],['m', 'n'],['a', 'b', 'c'],['f', 'g', 'h'], ['i','j','k','l']]

2 个答案:

答案 0 :(得分:30)

使用keysort中提供的sorted参数。它指定一个参数的函数,用于从每个列表元素中提取比较键

In [6]: a = [['a', 'b', 'c'], ['d', 'e'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l'], ['m', 'n'], ['o']]

In [7]: a.sort(key=len)

In [8]: print a
[['o'], ['d', 'e'], ['m', 'n'], ['a', 'b', 'c'], ['f', 'g', 'h'], ['i', 'j', 'k', 'l']]

答案 1 :(得分:2)

可以通过

完成
    sorted(a,key = len)