1. 无参数,无返回值的Lambda函数
无参数无返回值的Lambda函数其实不太常见,因为Lambda函数通常用于快速定义小的匿名函数,至少会返回一个值。但理论上可以这样写,但通常没有实际用途:
# 示例:无参数无返回值的Lambda函数(不推荐)
noop = lambda: None
noop() # 调用这个函数不会做任何事情
2. 有参数,无返回值的Lambda函数
有参数无返回值的Lambda函数可以通过打印或其他形式的副作用(side effect)来“返回”结果,但严格来说它没有返回值。
# 示例:有参数无返回值的Lambda函数,用于打印
print_number = lambda x: print(x)
print_number(10) # 输出: 10
3. 有参数,有返回值的Lambda函数
这是Lambda函数最常见的用法,用于定义简单的函数,比如计算、转换等。
# 示例:有参数有返回值的Lambda函数,用于计算平方
square = lambda x: x ** 2
print(square(5)) # 输出: 25
4. 使用列表的sort方法和内置函数sorted方法结合key关键字对列表中的字典进行排序
假设我们有一个字典列表,我们想根据字典中的某个键的值来排序这个列表。
# 示例字典列表
dicts = [
{'name': 'Alice', 'age': 30},
{'name': 'Bob', 'age': 25},
{'name': 'Charlie', 'age': 35}
]
# 使用sorted函数和key关键字
sorted_dicts_by_age = sorted(dicts, key=lambda x: x['age'])
print(sorted_dicts_by_age)
# 输出: [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
# 使用列表的sort方法
dicts.sort(key=lambda x: x['age'])
print(dicts)
# 输出: [{'name': 'Bob', 'age': 25}, {'name': 'Alice', 'age': 30}, {'name': 'Charlie', 'age': 35}]
# 注意:sort方法会就地修改列表,而sorted函数会返回一个新的列表
在上述示例中,我们首先创建了一个包含三个字典的列表,每个字典都有一个name
键和一个age
键。然后,我们使用sorted
函数和列表的sort
方法,结合Lambda函数作为key
参数,根据age
键的值对字典列表进行排序。注意,sorted
函数返回一个新的列表,而sort
方法会修改原列表。