lambda 表达式(匿名函数)
- lambda 定义及调用
# 普通函数定义和调用
def add(x, y):
return x + y
print(add(1, 2))
# lambda 定义和调用: 冒号前面是参数,后面是表达式
add = lambda x, y: x + y
print(add(1, 2))
- lambda 使用三元表达式
# 例子: 求x和y中大的值 : x,y x>y->x, else y
x = 3
y = 2
# 使用三元表达式实现
result = x if x > y else y
print(result)
# 结合 lambda 实现
max_value = lambda x, y: x if x > y else y
print(max_value(1, 2))
map函数
- map(函数,可迭代数) 的使用,(可迭代内的数据 都在执行一个函数,类似for循环)
# 例子: 求列表数的平方值
list_x = [1, 2, 3, 4]
def square(x):
return x ** 2
# 通过 for循环实现
for i in list_x:
print(square(i))
# 通过map实现
r = map(square, list_x)
print(list(r))
- map 函数和 lambda 函数的结合使用
list_x = [1, 2, 3, 4]
r = map(lambda x: x ** 2, list_x)
print(list(r))
- map接收多个参数,参数需要相同,否则只会返回最少参数的运行值
# 多个参数,个数相同
list_x = [1, 2, 3, 4]
list_y = [5, 6, 7, 8]
r = map(lambda x, y: x + y, list_x, list_y)
print(list(r))
# 不同参数个数
list_y = [5]
r = map(lambda x, y: x + y, list_x, list_y)
print(list(r))
reduce函数
- reduce函数的使用,参数需要两个(每次的结果作为下一次的运算)
# reduce 需要导入
from functools import reduce
list_x = [1, 2, 3, 4]
# reduce 的参数需要两个
r = reduce(lambda x, y: x + y, list_x)
print(r) # 1+2+3+4 求和运算
- reduce函数的初始值,初始值作为最开始的值
# 初始值
list_x = ["1", "2", "3", "4"]
r = reduce(lambda x, y: x + y, list_x, "aa")
print(r)
filter函数
- filter 函数的使用, 过滤元素,需要返回真假,输出集合
list_x = [1, 2, 3, 4]
r = filter(lambda x: True if x > 2 else False, list_x)
print(list(r))
- filter 函数,判断字母大小写
# 判断大小写
list_y = ["a", "A"]
r = filter(lambda x: True if x >= 'a' and x <= 'z' else False, list_y)
print(list(r))感谢浏览,如果您有什么问题和建议,期待您的留言,一起探讨与进步~
感谢浏览,如果您有什么问题和建议,请留言,期待共同的进步~