一、引言
lambda 是简单的匿名函数!Python 还有很多实用内置函数!
💡 lambda 写简单函数,内置函数效率高!
二、lambda 匿名函数
# lambda 语法:lambda 参数: 表达式
add = lambda a, b: a + b
print(add(3, 5)) # 8
# 等价于:
# def add(a, b):
# return a + b
# 用在排序时很方便
people = [("张三", 25), ("李四", 18), ("王五", 30)]
people.sort(key=lambda x: x[1]) # 按年龄排序
print(people)
三、map 函数
# map:把函数应用到每个元素上
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x ** 2, numbers))
print(squares) # [1,4,9,16,25]
# 或者用列表推导式(更推荐
squares = [x ** 2 for x in numbers]
四、filter 函数
# filter:保留符合条件的元素
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens) # [2,4,6]
# 列表推导式写法
evens = [x for x in numbers if x % 2 == 0]
五、常用内置函数
nums = [3, 1, 4, 1, 5, 9]
print(len(nums)) # 长度
print(max(nums)) # 最大值
print(min(nums)) # 最小值
print(sum(nums)) # 和
print(sorted(nums)) # 排序
print(sorted(nums, reverse=True)) # 倒序
# zip:把多个序列组合起来
names = ["张三", "李四", "王五"]
ages = [25, 18, 30]
for name, age in zip(names, ages):
print(f"{name}: {age}岁")
六、课后练习题
# 练习 1:用 lambda 写一个计算立方的函数
# 练习 2:用 map 把列表中的字符串转成大写
# 练习 3:用 filter 过滤出列表中的正数
总结
通过本章学习,你应该已经掌握了「匿名函数 lambda 与内置函数」的相关知识。
模块6完成!下一章学习列表推导式!