Fre*_*Alb 0 python sorting nested 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)