下面是一个示例代码,其中使用了lambda表达式和sorted函数来按两个条件对名称进行排名:
# 定义示例名称列表
names = [('Tom', 25), ('Jerry', 30), ('Alice', 20), ('Bob', 30)]
# 按名称长度和年龄进行排名
ranked_names = sorted(names, key=lambda x: (-len(x[0]), x[1]))
# 输出排名结果
print(ranked_names)
输出结果为:
[('Alice', 20), ('Tom', 25), ('Bob', 30), ('Jerry', 30)]
在该示例中,使用lambda表达式定义了一个排序函数,该函数包括两个条件。第一个条件是对名称长度取负数,这意味着名称长度越短的排名越高。第二个条件是对年龄进行升序排序,确保在名称长度相等的情况下按年龄排序。
最后,使用sorted函数将名称列表按照排序函数中定义的顺序进行排名。
下一篇:按两个条件对数据框进行分组