python - python使用具有多个条件的lambda函数对列表进行排序
问题描述
lst = ["g1 act car", "a8 act zoo", "a2 act car"]
我想对列表进行排序,以便:
- 忽略每个字符串的第一个标记,字符串按字典顺序排序
- 如果有平局,按照第一个令牌排序
上述排序后的列表应如下所示:
lst = ["a2 act car", "g1 act car", "a8 act zoo"]
我想在一行中编写排序代码。我可以为第一个条件编写代码,如下所示:
lst = sorted(lst, key = lambda x : x.split()[1])
如何在这个 lambda 表达式中结合第二个条件?
解决方案
尝试使用:
lst = sorted(lst, key = lambda x : (x.split(None, 1)[1], x.split()[0]))
现在:
print(lst)
是:
['a2 act car', 'g1 act car', 'a8 act zoo']
推荐阅读
- oauth-2.0 - 使用 Microsoft Identity Platform 和 MSAL.NET 从 Hotmail 中代表用户流检索电子邮件
- android - 如何模拟成功和错误代码的 API 响应
- javascript - 如何使用 React 钩子过滤状态?
- pycharm - PyCharm 上的 Windows 防御者
- c# - 调试 C# 项目
- flutter - 如何从 Firestore 文档的一个字段中获取数据?
- list - 根据其他数据列表创建值列表(谷歌表脚本)
- swift - Facebook“抱歉出了点问题”迅速
- android - FFmpeg Android 连接。“–safe 0”是无效参数
- discord.js - 如何将用户在消息反应中限制为 1 种选择?