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 23 Python
python连接oracle数据库实例
Oct 17 Python
django接入新浪微博OAuth的方法
Jun 29 Python
使用python实现省市三级菜单效果
Jan 20 Python
python使用webdriver爬取微信公众号
Aug 31 Python
Python中关键字global和nonlocal的区别详解
Sep 03 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
python cookie反爬处理的实现
Nov 01 Python
python 离散点图画法的实现
Apr 01 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/25 PHP
PHP 上传文件大小限制
2009/07/05 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
LAMP环境使用Composer安装Laravel的方法
2017/03/25 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP children()函数讲解
2019/02/03 PHP
DWZ刷新dialog解决方法
2013/03/03 Javascript
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
Vue 2中ref属性的使用方法及注意事项
2017/06/12 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
keras 自定义loss层+接受输入实例
2020/06/28 Python
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
主管职责范文
2013/11/09 职场文书
青年创业培训欢迎词
2014/01/08 职场文书
提拔干部考察材料
2014/05/26 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
年终工作总结范文
2019/06/20 职场文书
MySQL分区路径子分区再分区
2022/04/13 MySQL