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搭建简易服务器分析与实现
Dec 15 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Python中取整的几种方法小结
Jan 06 Python
Python学生信息管理系统修改版
Mar 13 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
使用python 写一个静态服务(实战)
Jun 28 Python
python批量处理txt文件的实例代码
Jan 13 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 Python
python UIAutomator2使用超详细教程
Feb 19 Python
Django使用channels + websocket打造在线聊天室
May 20 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
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
php格式化日期实例分析
2014/11/12 PHP
php实现的数组转xml案例分析
2019/09/28 PHP
xml转json的js代码
2012/08/28 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
使用js 设置url参数
2013/07/08 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
多个vue子路由文件自动化合并的方法
2019/09/03 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
python获取从命令行输入数字的方法
2015/04/29 Python
Python3使用requests发闪存的方法
2016/05/11 Python
python爬取网易云音乐评论
2018/11/16 Python
Python实现的矩阵转置与矩阵相乘运算示例
2019/03/26 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
深入理解Python 多线程
2020/06/16 Python
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
英文简历中的自我评价
2013/10/06 职场文书
六一儿童节主持词
2014/03/21 职场文书
组工干部对照检查材料
2014/08/25 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
个人务虚会发言材料
2014/10/20 职场文书
国庆节新闻稿
2015/07/17 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android