# 断更很久了今天来复习下python中lambda函数的使用 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)
python中lambda函数以及map函数复习
最新推荐文章于 2024-04-28 11:35:41 发布