[英]How to sort a list of lists based on the length of the inner lists, but if two inner lists are equal then sort based on first element of inner list
[英]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.