python - 如何根据内部列表的长度对列表列表进行排序?
问题描述
我想根据子列表中第二项的长度对列表列表进行排序,如下所示:
输入:
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)
推荐阅读
- python - 如何在python3的`keras`中调用`one_hot`?
- perl - 如何在 Coro 中使用“Net::http”?
- user-interface - 我们如何在 gui 中而不是在控制台中打印代码的输出?
- php - AwsS3Adapter 异常出现在本地但不在开发服务器中
- firebase - 如何打印有意义的 firebase-dart 异常
- python - 在 MultinomialNB 中选择重要特征时出错
- sql - 如何重复字符串中的字符
- javascript - 在 React 中设置选定值的选项标签
- sql-server - 如何在登录 SQL 触发器中获取数据库名称
- mysql - 需要获取日期,并获取从 mysql 预订了多少小时的日期