鱼C论坛

 找回密码
 立即注册
查看: 2500|回复: 0

[技术交流] python入门L21

[复制链接]
发表于 2017-6-30 05:47:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
lambda表达式的结构:
>>> def ds(x):
        return 2*x+1

>>> ds(5)
11
>>> lambda x : 2*x+1
<function <lambda> at 0x029F38E8>
这里的x 为原函数的参数
冒号后面为原函数的返回值
lambda语句返回一个对象,使其显示结果只需要对其进行赋值操作
>>> g= lambda x : 2*x+1
>>> g(5)
11
冒号前面的参数可以是多个,使用逗号隔开
>>> def add(x,y):
        return x+y

>>> add(3,4)
7
>>> lambda x,y : x+y
<function <lambda> at 0x032BD0C0>
>>> g= lambda x,y : x+y
>>> g(3,4)
7
lambda表达式的作用:
        - python经常被用来和linux配合使用写脚本,
python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如我们知识需要写个简单的脚本来管理服务器的时间,我们就不需要专门定义一个函数然后再写调用,使用lambda就可以使得代码更加精简。
        - 对于一些比较抽象并且整个程序执行下来只需要调用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题了。
        - 简化代码的可读性,由于普通的屌丝函数阅读经常要调到开头def定义部分,使用lambda函数可以省区这样的步骤。
两个牛逼的BIF
filter()
过滤器:可以过滤掉不关注的信息,通过过滤器进行筛选,得到想要的信息
原理就是将所有非True的内容过滤掉
filter(function or None, iterable) --> filter object
|  
|  Return an iterator yielding those items of iterable for which function(item)
|  is true. If function is None, return the items that are true.
当第一个参数为一个函数时,将后面iterable的每个数据带入函数,筛选出使所有函数值不为零的数据
当第一个参数为None时,筛选出iterable数据里的所有非零项
>>> filter(None,[1,0,False,True])
<filter object at 0x03C67550>
>>> list(filter(None,[1,0,False,True]))
[1, True]
Bsp:
筛选出所有奇数
def odd(x):
        return x%2
>>> temp=range(10)
>>> show= filter(odd,temp)#注意函数名不需加括号
>>> list(show)
[1, 3, 5, 7, 9]
将上述函数用一行写出来:
>>> list(filter(lambda x:x%2 , temp ))
[1, 3, 5, 7, 9]
Map()映射
map(func, *iterables) --> map object
|  
|  Make an iterator that computes the function using arguments from
|  each of the iterables.  Stops when the shortest iterable is exhausted.
对序列里的每个数据带入函数加工,直到序列里的每个数据都加工完毕,返回由所有加工后的元素构成的新序列。
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

评分

参与人数 1鱼币 +2 收起 理由
康小泡 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 11:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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