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自动化测试之连接几组测试包实例
Sep 28 Python
在Python中使用__slots__方法的详细教程
Apr 28 Python
Python yield 使用方法浅析
May 20 Python
Python for循环生成列表的实例
Jun 15 Python
Python实现平行坐标图的两种方法小结
Jul 04 Python
python之列表推导式的用法
Nov 29 Python
PyCharm下载和安装详细步骤
Dec 17 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python实现一个论文下载器的过程
Jan 18 Python
python批量提取图片信息并保存的实现
Feb 05 Python
python操作xlsx格式文件并读取
Jun 02 Python
python not运算符的实例用法
Jun 30 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
PR值查询 | PageRank 查询
2006/12/20 PHP
php 变量定义方法
2009/06/14 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
php防止sql注入简单分析
2015/03/18 PHP
php curl 上传文件代码实例
2015/04/27 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
js动态切换图片的方法
2015/01/20 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
理解javascript中的闭包
2017/01/11 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
Python sublime安装及配置过程详解
2020/06/29 Python
Python 列表推导式需要注意的地方
2020/10/23 Python
Python中pass的作用与使用教程
2020/11/13 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
毕业生自我鉴定实例
2014/01/21 职场文书
学校火灾防控方案
2014/06/09 职场文书
Java实现简易的分词器功能
2021/06/15 Java/Android