当前位置:   article > 正文

python 匿名函数_python匿名函数

python匿名函数

目录

1. 基础用法

2.匿名函数与常规函数对比

3. 与map(function, iterable)函数结合

4.与filter(function, iterable) 函数结合

5.与 reduce(function, iterable) 函数结合


简介:匿名函数是以关键字 lambda,后面是一系列的参数,然后用冒号隔开,最后则是由这些参数组成的表达式。运用匿名函数,能让我们的代码更简洁、易读;通常的使用场景是:程序中需要使用一个函数完成一个简单的功能,并且该函数只调用一次

匿名函数的格式:
lambda argument1, argument2,... argumentN : expression

1. 基础用法

  1. square = lambda x: x**2
  2. square(3)
  3. >> 9

2.匿名函数与常规函数对比

1).lambda 可以用在一些常规函数 def 不能用的地方,比如,lambda 可以用在列表内部,而常规函数却不能

  1. l = [(lambda x: x*x)(x) for x in range(10)]
  2. print(l)
  3. >> [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

2).lambda 可以被用作某些函数的参数,而常规函数 def 也不能

  1. l = [(1, 20), (3, 0), (9, 10), (2, -1)]
  2. l.sort(key=lambda x: x[1]) # 按列表中元组的第二个元素排序
  3. print(l)
  4. >> [(2, -1), (3, 0), (9, 10), (1, 20)]

3).lambda 的主体是只有一行的简单表达式,并不能扩展成一个多行的代码块

lambda 专注于简单的任务,而常规函数则负责更复杂的多行逻辑

3. 与map(function, iterable)函数结合

函数 的第一个参数是函数对象,第二个参数是一个可以遍历的集合,它表示对 iterable 的每一个元素,都运用 function 这个函数,返回一个迭代器

  1. squared = map(lambda x: x**2, [1, 2, 3, 4, 5])
  2. print(squared) # 返回一个 map类的迭代器
  3. print(list(squared)) # 转成列表
  4. >> <map object at 0x000002652C153100>
  5. >> [1, 4, 9, 16, 25]

4.与filter(function, iterable) 函数结合

表示对 iterable 中的每个元素,都使用 function 判断,并返回 True 或者 False,最后将返回 True 的元素组成一个新的可迭代的对象

  1. l = [1, 2, 3, 4, 5]
  2. new_list = filter(lambda x: x % 2 == 0, l)
  3. print(new_list)
  4. print(list(new_list))
  5. >> <filter object at 0x00000161F4833100>
  6. >> [2, 4]

5.与 reduce(function, iterable) 函数结合

表示对 iterable 中的每个元素以及上一次调用后的结果,运用 function 进行计算,所以最后返回的是一个单独的数值

  1. from functools import reduce
  2. l = [1, 2, 3, 4, 5]
  3. result = reduce(lambda x, y: x * y, l)
  4. print(result)
  5. >> 120

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/958912
推荐阅读
相关标签
  

闽ICP备14008679号