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中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python中使用装饰器来优化尾递归的示例
Jun 18 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
python实现下载文件的三种方法
Feb 09 Python
python中类变量与成员变量的使用注意点总结
Apr 29 Python
python抓取文件夹的所有文件
Feb 27 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
详解python播放音频的三种方法
Sep 23 Python
python 统计文件中的字符串数目示例
Dec 24 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Python + selenium + crontab实现每日定时自动打卡功能
Mar 31 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 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 Warning: Module 'modulename' already loaded in问题解决办法
2015/03/16 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
2017/03/15 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
农历与西历对照
2006/09/06 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
javascript 原型继承介绍
2011/08/30 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
Vue用mixin合并重复代码的实现
2020/11/27 Vue.js
python插入排序算法的实现代码
2013/11/21 Python
Python pandas常用函数详解
2018/02/07 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
python推导式的使用方法实例
2021/02/28 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
日语翻译个人求职的自我评价
2013/10/14 职场文书
文员的职业生涯规划发展方向
2014/02/08 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
体育教师教学随笔
2015/08/15 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
logback 实现给变量指定默认值
2021/08/30 Java/Android