51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1056|回复: 0
打印 上一主题 下一主题

[转贴] Python进阶:谈谈几个常用的内置函数

[复制链接]
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 1042 天

    连续签到: 4 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-3-29 10:46:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    匿名函数(lambda表达式)
      在Python中,函数可以算的上是“一等公民”了,我们先回顾下函数的优点:
      ·减少代码重复量
      · 模块化代码
      但是我们有没有想过,如果我们需要一个函数,比较简短,而且只需要使用一次(无需重复调用),那还需要定义一个有名字的函数么?
      答案是否定的,这里我们就可以使用匿名函数来实现这样的功能。
      我们先看看求一个数的平方,我们定义个函数怎么写:
    1. def square(x):
    2.       return x**2
    3.   square(3)
    复制代码
    而lambda表达式就可以这样写:
    1.  square = lambda x: x**2
    2.   square(3)
    复制代码
    根据上面的例子,其实lambda表达式使用还是很简单的,如下:
    1.  lambda argument1, argument2,.....: expression
    复制代码
    接下来,介绍的map、filter和reduce函数,与lambda表达式结合使用,才能发挥其强大的作用了。
      map函数
      map函数的使用如下:
    1.  map(function, iterable)
    复制代码
    其作用是,对iterable的每个元素,都运用function这个函数,最后返回新的可遍历的集合。

    1.  a = [1,2,3,4,5]
    2.   b = map(lambda x: x*2,a)
    3.   print(list(b))
    4.   # [2, 4, 6, 8, 10]
    复制代码
     filter函数
      filter函数的使用如下:
    1. filter(function, iterable)
    复制代码
    其作用是,对iterable的每个元素,都运用function这个函数进行判断,最后返回全部为True的新的可遍历的集合。
    1.  a = [1,2,3,4,5,6]
    2.   b = filter(lambda x :x%2 ==0, a)
    3.   print(list(b))
    4.   # [2, 4, 6]
    复制代码
     reduce函数
      reduce函数的使用如下:
    1. reduce(function, iterable)
    复制代码
     function规定有两个参数,表示对iterable每个元素和上一次运算的结果,进行function运算,最后得到一个值,这里要注意,我们需要从functools中导入reduce。
    1. from functools import reduce
    2.   a = [1,2,3,4]
    3.   b = reduce(lambda x,y: x*y,a)
    4.   print(b)
    5.   # 24  1*2*3*4
    复制代码
    总结
      ·lambda表达式
      · map、filter和reduce函数




    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-11 01:42 , Processed in 0.062428 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表