如何根据子列表的长度对列表列表进行排序[重复]
Posted
技术标签:
【中文标题】如何根据子列表的长度对列表列表进行排序[重复]【英文标题】:How to sort list of lists according to length of sublists [duplicate] 【发布时间】:2015-08-01 12:07:03 【问题描述】:我有以下列表
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']]
【问题讨论】:
【参考方案1】:使用sort
和sorted
中的key
参数。它指定一个参数的函数,用于从每个列表元素中提取比较键
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']]
【讨论】:
这不是关键,但无论如何都很棒:) 简单的事情,但不明白 Tnq Alik :) @rajeshv90sort
现在比较的不是子列表,而是它们的长度(len(sublist)
的值)
按子数组长度降序对数组进行排序的小调整:a.sort(key=len, reverse=True)
【参考方案2】:
可以通过
sorted(a, key=len)
【讨论】:
你必须解释,如果你这样做,那将是 OP以上是关于如何根据子列表的长度对列表列表进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章