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写一个无界面的2048小游戏
May 24 Python
Python实现字典按照value进行排序的方法分析
Dec 23 Python
Python交互环境下实现输入代码
Jun 22 Python
Python装饰器用法实例分析
Jan 14 Python
如何在Django配置文件里配置session链接
Aug 06 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
使用Python进行防病毒免杀解析
Dec 13 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
基于python实现操作git过程代码解析
Jul 27 Python
如何更换python默认编辑器的背景色
Aug 10 Python
Python自动化测试基础必备知识点总结
Feb 07 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 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 array_intersect比array_diff快(附详细的使用说明)
2011/07/03 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
python中bisect模块用法实例
2014/09/25 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
解决pandas展示数据输出时列名不能对齐的问题
2019/11/18 Python
Python字典底层实现原理详解
2019/12/18 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
python Xpath语法的使用
2020/11/26 Python
Python页面加载的等待方式总结
2021/02/28 Python
HTML5中FileReader接口使用方法实例详解
2017/08/26 HTML / CSS
HTML5中的新元素介绍
2008/10/17 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
工程力学硕士生的自我评价范文
2013/11/16 职场文书
园林设计师自荐信
2013/11/18 职场文书
安全资料员岗位职责
2013/12/14 职场文书
新闻编辑专业毕业自荐书范文
2014/02/05 职场文书
工作失误检讨书
2015/01/26 职场文书
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL