Python连载17-排序函数&返回函数的函数

一、高阶函数-排序
1.定义:把一个序列按照给定算法进行排序
2.key:在排序前对每一个元素进行key函数运算,可以理解成按照key函数定义的逻辑进行排序
3.python2和python3相差巨大

#help(sorted)
#排序案例1
a = [526,6,5565,323,596,265,6256]
#升序输出
al = sorted(a)
#降序输出
ap = sorted(a,reverse=True)
print(al)
print(ap)

#排序案例2
b = [514,56,25,526,-54,-54156,4,54,-415]
#按照绝对值排序
#abs是求绝对值的意思
a1 = sorted(b,key=abs,reverse=True)
print(a1)

#sorted案例
astr = ['dana','Dana','youxiu','asdhj']
a2 = sorted(astr)
print(a2)
a3 = sorted(astr,key=str.lower)
print(a3)

17.1
二、返回函数
1.函数也可以返回具体的值;也可以返回一个函数作为结果
2.我们接下来举例,只举第二段话的例子

def myF2():
    def myF3():
        print("再试一下结果")
        return 3
    return myF3
f3 = myF2()
print(type(f3))
print(f3)
print("------分割线------")
print(f3())

17.2
从返回值里面看出反回了一个类函数,然后我们运行了这个函数。
三、负责一点的返回函数的例子args:参数列表
注:(1)myF4定义了函数,返回内部函数定义的myF5;(2)myF5定义了外部变量,这个变量是myF4的参数

def myF4(*args):
#*args中的星号是让Python创建一个名为args的空元组
    def myF5():
        rst = 0
        for n in args:
            rst += n
        return rst
    return myF5
f5 = myF4(2,8,54,652,6526,6)
print(f5())

17.3
对比一下

def myF6(*args):
    rst = 0
    for n in args:
        rst += n
    return rst
f6 = myF6(2,8,54,652,6526,6)
print(f6)

总结:其实这个和上面函数得数一样,但是下面更好理解一些,这里就是为了做一个能够返回函数的演示,而且最本质的区别在于,一个是返回函数一个是返回值。
之所以要更复杂,是因为在企业的开发中返回函数更具有安全性要求,我们对函数可以进行加密。
四、源码:
d20_1_sorted_function&return_function_of_function
地址:https://github.com/ruigege66/Python_learning/blob/master/d20_1_sorted_function%26return_function_of_function
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,后台回复”礼包“,获取大数据学习资料。
17.4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值