要按照非惰性的lambda表达式或投影排序,可以使用Python中的sorted
函数。sorted
函数接受一个可迭代对象和一个可选的关键字参数key
,用于指定排序的基准。我们可以使用lambda表达式或投影函数作为key
参数来实现排序。
以下是一个示例代码,演示如何使用非惰性的lambda表达式或投影函数对列表进行排序:
# 使用lambda表达式排序
my_list = [5, 3, 8, 2, 1]
sorted_list = sorted(my_list, key=lambda x: x)
print(sorted_list) # 输出: [1, 2, 3, 5, 8]
# 使用投影函数排序
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [
Person("Alice", 25),
Person("Bob", 30),
Person("Charlie", 20)
]
sorted_people = sorted(people, key=lambda person: person.age)
for person in sorted_people:
print(person.name, person.age)
# 输出:
# Charlie 20
# Alice 25
# Bob 30
在上述示例中,我们首先使用lambda表达式来排序一个整数列表。lambda表达式lambda x: x
指定了排序的基准,即按照元素自身的大小进行排序。
然后,我们使用投影函数来排序一个自定义的Person
对象列表。lambda表达式lambda person: person.age
指定了排序的基准,即按照age
属性的值进行排序。最后,我们使用for
循环按照排序结果输出每个人的姓名和年龄。
请注意,sorted
函数返回一个新的已排序的列表,而不是在原地修改原始列表。如果要在原始列表上进行排序,请使用list.sort
方法。
上一篇:按照非常具体的顺序构建字符串列表
下一篇:按照非括号中包含的单词分割