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中的各种装饰器详解
Apr 11 Python
Python实现的Excel文件读写类
Jul 30 Python
TensorFlow变量管理详解
Mar 10 Python
python检测主机的连通性并记录到文件的实例
Jun 21 Python
python实现可视化动态CPU性能监控
Jun 21 Python
Pycharm无法显示动态图片的解决方法
Oct 28 Python
Django ManyToManyField 跨越中间表查询的方法
Dec 18 Python
Python中print和return的作用及区别解析
May 05 Python
对python中UDP,socket的使用详解
Aug 22 Python
python 日志 logging模块详细解析
Mar 31 Python
Python几种常见算法汇总
Jun 02 Python
PyTorch如何搭建一个简单的网络
Aug 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
德生PL550的电路分析
2021/03/02 无线电
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
javascript String 对象
2008/04/25 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
babel之配置文件.babelrc入门详解
2018/02/22 Javascript
Vue中$refs的用法详解
2018/06/24 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
2018/08/20 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
Python操作SQLite简明教程
2014/07/10 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
python利用faker库批量生成测试数据
2020/10/15 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
财务主管的岗位职责
2013/12/30 职场文书
高校教师思想汇报
2014/01/11 职场文书
感恩母亲节活动方案
2014/03/04 职场文书
卖房协议书
2014/04/11 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
保研推荐信范文
2015/03/25 职场文书
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
2021/04/12 Python