您的位置:首页 > 编程语言 > Python开发

python之函数详解(补)

2020-03-28 20:07 162 查看

不是已经写了一篇关于函数的了吗?为什么还有一篇补的呢? 相信看过前一篇函数详解的知道,有一张关于函数导图的图片,还有好几个知识没有说明,如果全部写一篇文章发表的呢,篇幅很长,影响学习兴趣!话不多说,码就完了!!!

1.3、高阶函数:变量指向函数,函数的参数能够接收变量,那么一个函数就可以接受另一个函数作为参数,这种函数就成为高阶函数。
两个特点:变量可以指向函数;函数名其实就是指向函数的变量。
1.3.1、map()函数:map()函数接收两个函数,一个是函数,另一个是iterable。语法格式为:

map(func,sep1[,sep2,……])

第一个参数func接收一个函数名,后面的参数接收一个或多个可迭代的序列,返回一个集合

def f(x):
return x * x
r_map = map(f,[1,2,3,4])#运用map函数,将f(x)作为参数
list(r_map)
#简单理解为map函数将func后的序列依次传入func中,然后赋值给r_amp。

1.3.2、sorted函数:可对所有可迭代的对象进行排序操作,语法格式为:

sorted(iterable,key=None,reverse=False)#iterable为可迭代对象
#key为指定的函数;reverse指代排序规则,为True表降序,False表升序(默认)

sort()与sorted的区别:sort仅应用在list上,是对已经存在的列表操作;sorted可以对所有可迭代的对象进行操作,返回一个新的list,而不是在原有基础上操作。

#sort与sorted的区别
L = [1,9,3,7,5]
K = [8,4,6,0,2]
print(sorted(L))#使用sorted函数排序得到一个新的list
print(L)#sorted函数并未改变L
K.sort()#sort函数作用于list
print(K)#K本身已经改变

2 #sorted运用实例
#对字符串序列按照字母进行反向排序
sorted(['Tom','Kate','Lily','susan'],key = str.lower,reverse=True)
#对字符串序列按照字母顺序进行排序
sorted(['Tom','Kate','Lily','susan'],key = str.upper)

1.3.3、filter函数:用于过滤序列。filter把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。ps:高阶函数有很多,就不一一列举啦!!

#过滤出1-100中平方根为整数的数
import math
def sqr_int(x):
return math.sqrt(x) % 1 == 0
r_list = filter(sqr_int,range(1,101))
list(r_list)

1.4、匿名函数:由于突然发现python对匿名函数支持有限,匿名函数只在一般情况下使用,所以就简略的叙述下。

所谓匿名,就是不使用def语句,而使用lambda。需要注意的是lambda的主体是一个人表达式而不是一个代码块。它拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数

#语法
lambda [arg1 [,arg2,……srgn]]:expression
#定义一个参数,返回它的平方
f = lambda a: a *a
f(5)
#运行结果 25
  • 点赞
  • 收藏
  • 分享
  • 文章举报
小天呀 发布了6 篇原创文章 · 获赞 3 · 访问量 764 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: