博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ptyhon 编程基础之函数篇(二)-----返回函数,自定义排序函数,闭包,匿名函数...
阅读量:4946 次
发布时间:2019-06-11

本文共 679 字,大约阅读时间需要 2 分钟。

一、自定义排序函数

在Python中可以使用内置函数sorted(list)进行排序:

                  

结果如下图所示:

                 

但sorted也是一个高阶函数,可以接受两个参数来实现自定义排序函数,第一个参数为要排序的集合,第二个参数为定义的排序函数f(x,y);对于函数f(X,Y)l来说:

                                         如果要x放在Y的前面,则返回-1;

                                        如果要x放在Y的后面,则返回1;

                                        若x与y无法区分大小,则返回0。

自定义倒序排序函数:

                   

运行结果:

                

二、将返回一个函数作为返回值:

       

返回函数会延迟函数的计算时间,而返回一个函数的调用则是返回一个已经计算好的值。下面将通过一个实例来解释返回函数可以延迟函数的执行:

直接返回值:

                                      

 

结果为:

                                   

当返回一个函数时:

                                     

结果为:

                                      

 

 中闭包:在一个函数内部定义一个新函数,且内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。

闭包的特点:返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。

因此,返回函数不要引用任何循环变量,或者后续会发生变化的变量。

三、匿名函数

          关键字:lambda

           定义:lambda 参数列表 :表达式

           注意:匿名函数的表达式只能有一个,且没有return语句,返回值就是这个表达式的计算结果。

map(lambda x: x+5,[1,4,5])

         等价于:

def   f(x):      return x+5map(f,[1,4,5])

 

 

 

转载于:https://www.cnblogs.com/ky09/p/7568544.html

你可能感兴趣的文章
centos7.4/rehat7.0系统安装
查看>>
多态继承
查看>>
1063 计算谱半径
查看>>
BZOJ 1529 - 并查集
查看>>
LVS介绍
查看>>
$.fn.extend() 问:我来这个世上到底是干嘛的?
查看>>
ELF文件和BIN文件
查看>>
django项目在uwsgi+nginx上部署遇到的坑
查看>>
MongoDB账号管理及实践
查看>>
111CSS3效果:旋转的正方体
查看>>
windebug 与 office Home
查看>>
整理了关于javascript中mouse坐标几段函数
查看>>
Infix to Postfix Expression
查看>>
win7任务栏还原为xp样式
查看>>
html--笔记day03
查看>>
读取短信
查看>>
互质数:欧拉公式
查看>>
AndroidStudio离线打包MUI集成JPush极光推送并在java后端管理推送
查看>>
ASP.NET开发实践系列课程之SQL注入攻击(SQL Injection)
查看>>
快速选择算法/Select 寻找第k大的数
查看>>