如何根据子列表的长度对列表列表进行排序[重复]

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】:

使用sortsorted 中的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 :) @rajeshv90 sort 现在比较的不是子列表,而是它们的长度(len(sublist) 的值) 按子数组长度降序对数组进行排序的小调整:a.sort(key=len, reverse=True)【参考方案2】:

可以通过

sorted(a, key=len)

【讨论】:

你必须解释,如果你这样做,那将是 OP

以上是关于如何根据子列表的长度对列表列表进行排序[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何根据GPA对数组列表进行升序排序? arraylist 包含一个对象数组。 (Java)[重复]

如何在C#中对列表进行排序[重复]

我想要一些关于如何根据元素频率对列表进行排序的帮助[重复]

如何在Python中对版本标签列表进行排序[重复]

python:按子列表中的项目对列表列表进行排序[重复]

从最新到最旧的python对Mongo列表进行排序[重复]