def test(x):
return x*x
# 这里我们用lambda定义一个匿名的内联函数。请注意,该函数没有名称。test 是保存创建的lambda函数的变量的名称
# 上面的函数和下面的lambda函数是一样的
test_f = lambda x: x*x
print(test(3))
print(test_f(3))
# 常量函数
def constant():
return 1
constant_f = lambda: 1
print(constant())
print(constant_f())
# 多变量函数
def product(x, y):
return x*y
product_f = lambda x,y:x*y
print(product(3, 4))
print(product_f(3, 4))
# Python map() 是一个内置函数,它将给定的函数应用于迭代器iterable的每一项,并返回一个迭代器iterator对象。
# 注意的是Python2 map函数返回列表,Python3 map函数返回迭代器。
# map用法 map(函数,序列) 返回迭代对象,遍历出来即可用
def fun(x):
return x*x
result = map(fun, [1,2,3,4,5,6])
print(result)
# result 只是对象需要遍历出来才能打印出具体的值
for i in result:
print(i)
nums = [1, 2, 3, 4, 5, 6]
res = map(lambda x: x*x, nums)
for i in res:
print(i)
# 当然lambada函数可以结合map()函数,输入两个参数,以下示例提供了两个列表,对两个列表中相同位置的数据进行相加
num1 = [1, 2, 3, 4, 5]
num2 = [6, 7, 8, 9, 10]
ret = map(lambda x, y: x+y, num1, num2)
for i in ret:
print(i)
# Python lambda函数可以与filter()函数一起使用。 filte(函数,序列) 函数的作用是:从iterable中返回true的元素构造一个列表。
# filte()函数为python自带函数,主要用于过滤掉不符合设定条件的元素,并返回符合条件元素组成的迭代器iterable。
# 该函数有两个输入参数,第一个参数为处理函数,第二个参数为要处理的序列。序列的每个元素作为参数给函数进行判断,
# 返回True或 False,过滤到返回False的参数,并将返回 True 的元素放到迭代器中
def is_even(x):
return x % 2 == 0
result = filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result)
for i in result:
print(i)
# lambda函数结合filter函数过滤了整数列表。新列表仅包含奇数整数。
# filter()中第一个函数为处理列表元素的函数,也就是lambda函数。
nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nums_f = list(filter(lambda x: x % 2, nums1))
print(nums_f)