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脚本将Bing的每日图片作为桌面的教程
May 04 Python
举例讲解Python面向对象编程中类的继承
Jun 17 Python
Python实现PS图像明亮度调整效果示例
Jan 23 Python
python实现自动登录后台管理系统
Oct 18 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
python实现从本地摄像头和网络摄像头截取图片功能
Jul 11 Python
python3.x提取中文的正则表达式示例代码
Jul 23 Python
python os.fork() 循环输出方法
Aug 08 Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 Python
python模拟实现斗地主发牌
Jan 07 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
使用PyCharm安装pytest及requests的问题
Jul 31 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
正则表达式语法
2006/10/09 Javascript
转换中文日期的PHP程序
2006/10/09 PHP
繁体中文转换为简体中文的PHP函数
2006/10/09 PHP
解决GD中文乱码问题
2007/02/14 PHP
THINKPHP+JS实现缩放图片式截图的实现
2010/03/07 PHP
php输出xml格式字符串(用的这个)
2012/07/12 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php使用iconv中文截断问题的解决方法
2015/02/11 PHP
php支付宝APP支付功能
2020/07/29 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python中装饰器学习总结
2018/02/10 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
用Python解决x的n次方问题
2019/02/08 Python
python 读取文件并把矩阵转成numpy的两种方法
2019/02/12 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
马来西亚排名第一的宠物用品店:Pets Wonderland
2020/04/16 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
python字典进行运算原理及实例分享
2021/08/02 Python