鱼C论坛

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

[技术交流] 《零基础入门学习Python》021函数:lambda表达式

[复制链接]
发表于 2017-7-6 23:28:44 | 显示全部楼层 |阅读模式

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

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

x
《零基础入门学习Python》
——学习笔记

021函数:lambda表达式

一.        定义分析

1.        匿名函数lambda:匿名函数其实就是lambda函数,因其特性为不需要命名即可通过表达式使用反馈结果而被命名为匿名函数。

2.        lambda表达式:lambda表达式内有两个参数,第一个参数为引用的变量,第二个参数为函数,两个参数间用:隔开。

用法:lambda _ :_
  1. #举例子
  2. >>>def ds(x):
  3. return 2 * x + 1
  4.      
  5.                                 >>>ds(5)
  6.                                 11
  7.                                 >>>g = lambda x : 2 * x + 1
  8.                                 >>>g(5)
  9.                                 11
复制代码
3.        两个内建函数:

(1)        filter():过滤器,通过设定条件使过滤器进行过滤最后得出想要的部分。

filter内包含两个参数,第一个参数是函数或None,第二个参数是序列。当第一个参数为函数时,按照函数所满足的条件从序列中筛选出匹配的内容;当第一个参数为None时,默认从序列中筛选出条件为True的内容。
  1. #举例子(参数为函数)
  2. >>>def odd(x):
  3.                          return x % 2
  4. >>>temp = range(10)
  5. >>>show = filter(odd,temp)
  6. >>>list(show)
  7. [1,3,5,7,9]
  8. 等价于:
  9. list(filter(lambda x : x % 2,range(10)))
复制代码
  1. #举例子(参数为None)
  2. >>>list(filter(None,[1,0,False,True]))
  3. [1,True]
复制代码

(2)        map():将序列的每一个函数作为函数的参数进行运算加工,直至遍历所有元素后返回所有遍历的值形成新的序列。

map()也有两个函数,第一个参数是函数,第二个参数是序列。
  1. #举例子
  2. >>>list(map(lambda x : x * 2,range(10)))
  3. [0,2,4,6,8,10,12,14,16,18]
复制代码

二.        杂谈

1.        以上例子使用了range函数,特性是不包括最后一个数,这个要记清楚。

2.        filter和map的区别:filter和map除了在参数上略有不同外,filter是返回判断后结果为True的值,而map是按函数办事,返回的是执行完函数之后的值。

三.        部分作业分析

1.        测试题0不知道能不能把y舍弃,变成
  1. list(lambda x : x * 3)
复制代码

2.        测试题3我查了下百度,说0也算3的倍数,所以我觉得可以这么写:
  1. >>> list(filter(lambda x : x % 3 == 0,range(100)))
复制代码
3.        测试题6这里借用一下yongxi兄的话,2是给n赋值,double()是给S赋值。

四.        知识掌握程度

心得:学到了lambda表达式的用法和filter,map这两个函数的用法。

难点:对匿名函数和普通函数的熟练转换。

重点:range定义的复习和两个内置函数的使用。

评分

参与人数 2鱼币 +5 收起 理由
小甲鱼 + 2
康小泡 + 3

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 00:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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