Python进阶:谈谈几个常用的内置函数

发表于:2022-3-28 10:01

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:是日秋和    来源:稀土掘金

  匿名函数(lambda表达式)
  在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点:
  ·减少代码重复量
  · 模块化代码
  但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使用一次(无需重复调用),那还需要定义一个有名字的函数么?
  答案是否定的,这里我们就可以使用匿名函数来实现这样的功能。
  我们先看看求一个数的平方,我们定义个函数怎么写:
  def square(x):
      return x**2
  square(3)

  而lambda表达式就可以这样写:
  square = lambda x: x**2
  square(3)

  根据上面的例子,其实lambda表达式使用还是很简单的,如下:
  lambda argument1, argument2,.....: expression
  
  接下来,介绍的map、filter和reduce函数,与lambda表达式结合使用,才能发挥其强大的作用了。
  map函数
  map函数的使用如下:
  map(function, iterable)
  
  其作用是,对iterable的每个元素,都运用function这个函数,最后返回新的可遍历的集合。
  a = [1,2,3,4,5]
  b = map(lambda x: x*2,a)
  print(list(b))
  # [2, 4, 6, 8, 10]
  
  filter函数
  filter函数的使用如下:
  filter(function, iterable)
  
  其作用是,对iterable的每个元素,都运用function这个函数进行判断,最后返回全部为True的新的可遍历的集合。
  a = [1,2,3,4,5,6]
  b = filter(lambda x :x%2 ==0, a)
  print(list(b))
  # [2, 4, 6]
  
  reduce函数
  reduce函数的使用如下:
  reduce(function, iterable)
  
  function规定有两个参数,表示对iterable每个元素和上一次运算的结果,进行function运算,最后得到一个值,这里要注意,我们需要从functools中导入reduce。
  from functools import reduce
  a = [1,2,3,4]
  b = reduce(lambda x,y: x*y,a)
  print(b)
  # 24  1*2*3*4
 
  总结
  ·lambda表达式
  · map、filter和reduce函数

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号