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 json模块使用实例
Apr 11 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
selenium+python自动化测试之环境搭建
Jan 23 Python
Flask配置Cors跨域的实现
Jul 12 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
Python常见反爬虫机制解决方案
Jun 01 Python
keras load model时出现Missing Layer错误的解决方式
Jun 11 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
python源文件的字符编码知识点详解
Mar 04 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求一个网段开始与结束IP地址的方法
2015/07/09 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
php快速导入大量数据的实例方法
2019/09/23 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
jQuery调用WebService的实现代码
2011/06/19 Javascript
文本框根据输入内容自适应高度的代码
2011/10/24 Javascript
JavaScript函数作用域链分析
2015/02/13 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
jQuery实现动画、消失、显现、渐出、渐入效果示例
2018/09/06 jQuery
如何解决vue在ios微信&quot;复制链接&quot;功能问题
2020/03/26 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
Python中使用Flask、MongoDB搭建简易图片服务器
2015/02/04 Python
Python抓取电影天堂电影信息的代码
2016/04/07 Python
python多线程方式执行多个bat代码
2016/06/07 Python
python flask实现分页的示例代码
2018/08/02 Python
Python Excel处理库openpyxl使用详解
2019/05/09 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
音频处理 windows10下python三方库librosa安装教程
2020/06/20 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
Prototype是怎么扩展DOM的
2014/10/01 面试题
教师档案管理制度
2014/01/23 职场文书
大学生军训广播稿
2014/01/24 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
个性婚礼策划方案
2014/05/17 职场文书
端午节演讲稿
2014/05/23 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
安全演讲稿开场白
2014/08/25 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python