匿名函数 lambda 与内置函数

文章顶部广告位
728×90 或 336×280

一、引言

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完成!下一章学习列表推导式!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250