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 相关文章推荐
Python3实现生成随机密码的方法
Aug 23 Python
Python中计算三角函数之cos()方法的使用简介
May 15 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
python简易远程控制单线程版
Jun 20 Python
Python实现图片拼接的代码
Jul 02 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
Aug 22 Python
Python matplotlib以日期为x轴作图代码实例
Nov 22 Python
python 浅谈serial与stm32通信的编码问题
Dec 18 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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&amp;MYSQL服务器配置说明
2006/10/09 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
php数据序列化测试实例详解
2017/08/12 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
phpStorm2020 注册码
2020/09/17 PHP
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
JavaScript中常用的六种互动方法示例
2015/03/13 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
深入理解react-router 路由的实现原理
2018/09/26 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
Python脚本处理空格的方法
2016/08/08 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
python异步存储数据详解
2019/03/19 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
Python类如何定义私有变量
2020/02/03 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
毕业典礼演讲稿
2014/05/13 职场文书
工作所在部门证明
2014/09/21 职场文书
撤诉状格式范本
2015/05/19 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
2016年感恩节活动总结大全
2016/04/01 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书
TV动画《间谍过家家》公开PV
2022/03/20 日漫