繁体   English   中英

如何根据内部列表的长度对列表列表进行排序?

[英]How to sort a list of lists based on length of inner list?

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

输入:

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)

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

使用sort或使用自定义键sorted

前任:

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)

您快到了:

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

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

print(out)
#[['C', '12345', 'X'], ['A', '1234', 'X'], ['D', '123', 'X'], ['B', '12', 'X']]

请注意,您不应该命名您的列表list ,因为这会影响内置函数的名称并导致以后出现问题...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM