Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析


Posted in Python onDecember 26, 2019

本文实例讲述了Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法。分享给大家供大家参考,具体如下:

函数的返回值:

  • 函数一旦执行到   return,函数就会结束,并会返回return 后面的值,如果不使用显式使用return返回,会默认返回None 。
  • return None可以简写为   return

Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析

def my_add(x,y):
  z=x+y
  return z
print(my_add(1,2))##打印的是返回值

def my_add_none(x,y):
  z=x+y

print(my_add_none(1,2))

上述代码结果:

3
None
  • 可以通过返回列表、元组等多元素形式来返回多个值【直接返回多个值相当于返回元组】:
def func2(x,y):
  list1=[]
  list1.append(x)
  list1.append(y)
  return list1
print(func2(1,2),type(func2(1,2)))

def func1(x,y):
  return x,y

print(func1(1,2),type(func1(1,3)))

上述代码结果:

[1, 2] <class 'list'>
(1, 2) <class 'tuple'>
  • 也可以返回一个函数:
def my_calc(sign):
  add=lambda x,y:x+y
  sub=lambda x,y:x-y
  if sign=='+':
    return add
  elif sign=='-':
    return sub
  else:
    print("错误!")
    return None
add=my_calc('+')
sub=my_calc('-')
print(add(1,2),sub(1,2))

匿名函数lambda:

  • 用处: 节约代码量,节约函数名,lambda是一个表达式而不是一个语句。它能够出现在python语法不允许def出现的地方。
  • 格式: lambda 参数:表达式
  • 返回结果:返回的是将参数带入计算后的表达式的结果
def my_calc(sign):
  add=lambda x,y:x+y
  sub=lambda x,y:x-y
  if sign=='+':
    return add
  elif sign=='-':
    return sub
  else:
    print("错误!")
    return None
add=my_calc('+')
sub=my_calc('-')
print(add(1,2),sub(1,2))
>>> sum = lambda x,y:x+y
>>> sum(4,5)
9

经常使用lambda搭配filter、map、reduce来处理列表 下面介绍filter、map、reduce


filter:

  • 格式:filter(筛选函数,可迭代的筛选参数)
  • 用法:将筛选参数传入到筛选函数中,根据表达式的值来判断真假,如果为真则保留结果,为假则不保留
print(list(filter(lambda x:x%2,range(20))))#range(20)中保留下了x%2结果为真的结果,奇数
print(list(filter(lambda x:x>5,range(20))))#range(20)中保留了大于5的结果

上述代码结果:

[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
[6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

map:

格式:map(筛选函数, 可迭代的筛选参数)

用法:将筛选参数传入到筛选函数中,返回筛选函数的结果

#返回函数的结果
print(list(map(lambda x:x*x,range(20))))
print(list(map(str,range(10))))

上述代码结果:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce:

格式:reduce(筛选函数, 序列)

用法:reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4),把前一次的结果作为后一次的参数

import functools
print(functools.reduce(lambda x,y:x+y,range(10)))
print(functools.reduce(lambda x,y:x*10+y,[1,2,3,4,5]))
print(functools.reduce(lambda x,y:x*y,[1,2,3,4,5]))

上述代码结果:

45
12345
120

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 元组(Tuple)操作详解
Mar 11 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
Python深入06——python的内存管理详解
Dec 07 Python
python3实现名片管理系统
Nov 29 Python
python将视频转换为全字符视频
Apr 26 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
python中的反斜杠问题深入讲解
Aug 12 Python
tensorflow之并行读入数据详解
Feb 05 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
实例代码讲解Python 线程池
Aug 24 Python
全面介绍python中很常用的单元测试框架unitest
Dec 14 Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 #Python
Python高阶函数、常用内置函数用法实例分析
Dec 26 #Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 #Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 #Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 #Python
python DataFrame转dict字典过程详解
Dec 26 #Python
Numpy之reshape()使用详解
Dec 26 #Python
You might like
php常用ODBC函数集(详细)
2013/06/24 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
PHP学习笔记之session
2018/05/06 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
javascript Xml增删改查(IE下)操作实现代码
2009/01/30 Javascript
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
JavaScript的类型简单说明
2010/09/03 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
jquery实现submit提交表单
2015/02/03 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
H5移动端图片压缩上传开发流程
2016/11/09 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
详解vue添加删除元素的方法
2018/06/30 Javascript
微信打开网址添加在浏览器中打开提示的办法
2019/05/20 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:08:56]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第一场 2月7日
2021/03/11 DOTA
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
浅谈django 重载str 方法
2020/05/19 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
学术诚信承诺书
2014/05/26 职场文书
2015年企业新年寄语
2014/12/08 职场文书
家长对孩子的寄语
2015/02/26 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
一文了解Java动态代理的原理及实现
2022/07/07 Java/Android