Python函数式编程之lambda表达式
2018-10-10 08:39:52来源:博客园 阅读 ()
一:匿名函数的定义
lambda parameter_list: expression
二:三元表达式
条件为真时返回的结果 if 条件判断 else 条件为假的时候返回的结果
三:map
map(func(arg1, arg2...), list1_arg1, list2_arg2),
对后面输入的list分别执行前面的函数(数学的映射)
四:reduce
reduce(func(arg1, arg2...), list1_arg, init_value),
连续计算,连续调用lambda表达式
五:filter
filter(func(arg1, arg2...), list1_arg1)
当条件满足的时候数据会被过滤出来!
六:函数式编程和命令式编程
def
if --else
for
map reduce filter
lambda
函数式编程的思想。。。。
命令式编程的思想。。。。
函数式编程关心数据的映射,命令式编程关心解决问题的步骤
函数式编程:
(1)指的是函数与其他数据类型一样,处于平等地位,
可以赋值给其他变量,也可以作为参数,传入另一个函数,或者作为别的函数的返回值
(2) 只用"表达式",不用"语句"
Code:
1 from functools import reduce 2 # ----------------------------------------------------------------# 3 # 匿名函数的定义 4 # ----------------------------------------------------------------# 5 6 7 def add(x, y): 8 """ 9 add x and y 10 :param x: x can be str or num 11 :param y: y can be str or num 12 :return: x+y 13 """ 14 return x + y 15 16 17 # lambda parameter_list: expression 18 user_sum = lambda arg1, arg2: arg1 + arg2 19 20 my_sum = user_sum(2, 2) 21 print(my_sum) 22 23 # ----------------------------------------------------------------# 24 # 三元表达式 25 # ----------------------------------------------------------------# 26 a, b = 1, 2 27 r = a if a > b else b 28 print(r) 29 30 # ----------------------------------------------------------------# 31 # map(func, list),对后面输入的list分别执行前面的函数(数学的映射) 32 # ----------------------------------------------------------------# 33 34 myListMap1 = [1, 2, 3, 4] 35 myNewListMap1 = map(lambda x: x ** 2, myListMap1) # 返回为map类型的数据结构 36 print(type(myNewListMap1)) 37 print('myNewListMap1:', list(myNewListMap1)) # 转换为list 38 39 40 # 两个或者多个参数的map函数的使用 41 # 当两个参数种元素的个数不相同的时候会截断 42 myListMap2 = [1, 2, 3, 4] 43 myNewListMap2 = map(lambda x, y: x + y, myListMap1, myListMap2) 44 print('myNewListMap2:', list(myNewListMap2)) 45 46 47 # ----------------------------------------------------------------# 48 # reduce(func, list)连续计算,连续调用lambda表达式 49 # ----------------------------------------------------------------# 50 51 myListReduce = [1, 2, 3, 4] 52 # 把list中的值一个一个放进lambda中 53 r = reduce(lambda x, y: x + y, myListReduce) 54 print(r) 55 56 # 对第一个函数参数进行初始化 57 r = reduce(lambda x, y: x + y, myListReduce, 10) 58 print(r) 59 60 # filter 61 myListFilter = [3, 5, 6, 7, 8, 9, 10] 62 myNewListFilter = filter(lambda x: x % 2 == 1, myListFilter) 63 print('myNewListFilter:', list(myNewListFilter)) 64 65 list_x = [1, 1, 0, 0] 66 filter_list = filter(lambda x: True if x == 1 else False, list_x) 67 print(list(filter_list))
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:常用模块3
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash