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程序运行效率的6个方法
Mar 31 Python
Python的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
Python环境下安装使用异步任务队列包Celery的基础教程
May 07 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
Python实现接受任意个数参数的函数方法
Apr 21 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
python简单验证码识别的实现方法
May 10 Python
Pycharm远程调试原理及具体配置详解
Aug 08 Python
Python 切分数组实例解析
Nov 07 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
Python爬虫后获取重定向url的两种方法
Jan 19 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
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
PHP多进程简单实例小结
2019/11/09 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
深入浅析NodeJs并发异步的回调处理
2015/12/21 NodeJs
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python根据成绩分析系统浅析
2019/02/11 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
python 调整图片亮度的示例
2020/12/03 Python
应届生法律顾问求职信
2013/11/19 职场文书
服务生自我鉴定
2014/01/22 职场文书
愚人节活动策划方案
2014/03/11 职场文书
总经理秘书岗位职责
2014/03/17 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
2015年企业工作总结范文
2015/04/28 职场文书
加强党性修养心得体会
2016/01/21 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
Java8中接口的新特性使用指南
2021/11/01 Java/Android
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python
docker-compose部署Yapi的方法
2022/04/08 Servers
Win11 Beta 预览版 22621.575 和 22622.575更新补丁KB5016694发布(附更新内容大全)
2022/08/14 数码科技