首页 > 解决方案 > 如何根据内部列表的长度对列表列表进行排序?

问题描述

我想根据子列表中第二项的长度对列表列表进行排序,如下所示:

输入:

list = [['A', '1234', 'X'],['B', '12', 'X'],['C', '12345', 'X'],['D', '123', 'X']]

输出:

list = [['C', '12345', 'X'],['A', '1234', 'X'],['D', '123', 'X'],['B', '12', 'X']]

到目前为止我所拥有的是:

list = sorted(list, key=len, reverse=True)

但我不确定如何让它查看列表中特定项目的长度。提前致谢!

标签: pythonlistsortingnested

解决方案


使用sortsorted与自定义键。

前任:

data = [['A', '1234', 'X'],['B', '12', 'X'],['C', '12345', 'X'],['D', '123', 'X']]
data.sort(key=lambda x: len(x[1]), reverse=True)

或者sorted

data = sorted(data, key=lambda x: len(x[1]), reverse=True)

print(data)

推荐阅读