首页 > 解决方案 > python使用具有多个条件的lambda函数对列表进行排序

问题描述

lst = ["g1 act car", "a8 act zoo", "a2 act car"]

我想对列表进行排序,以便:

  1. 忽略每个字符串的第一个标记,字符串按字典顺序排序
  2. 如果有平局,按照第一个令牌排序

上述排序后的列表应如下所示:

lst = ["a2 act car", "g1 act car", "a8 act zoo"]

我想在一行中编写排序代码。我可以为第一个条件编写代码,如下所示:

lst = sorted(lst, key = lambda x : x.split()[1])

如何在这个 lambda 表达式中结合第二个条件?

标签: pythonsortinglambda

解决方案


尝试使用:

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']

推荐阅读