Python学习笔记7——Sorted及返回函数

#sorted函数可直接用于对list进行排序,同时还可以接收一个key函数用来对list进行自定义的排序
#比如按照绝对值排序
sorted(range(-5,5),key=abs)
#忽略大小写对字符串列表进行排序
sorted(['Abd','asdf','fd','zdfe','fdZ','Fe','Sd','FB','ew','Gr'],key=str.upper)
#反向排序(倒叙),仅需要在排序函数中加入 reverse=True便可
sorted(['Abd','asdf','fd','zdfe','fdZ','Fe','Sd','FB','ew','Gr'],key=str.upper, reverse=True)
#对进行排序
#根据姓名进行排序
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
def by_name(t):
    return t[0].upper()
print(sorted(L,key=by_name))
#根据成绩由高到低排序
def by_score(t):
    return -t[1]
print(sorted(L,key=by_score))


#函数既可以返回计算结果,也可以返回计算函数
#返回一个函数时,该函数并未执行,返回函数中也不能引用任何可能会变化的变量,若一定要引用可能会变化的变量,那么需要创建一个函数,用该函数的参数来绑定可变变量当前的值
def count():
    def f(i):           #通过参数绑定可变变量当前值
        return i*i      
    fs=[]
    for i in range(1,4):#i为可变变量
        fs.append(f(i))
    return fs
f1,f2,f3 = count()
print(f1,f2,f3)

#利用闭包返回一个计数器函数,每次调用它返回递增整数:
#需要注意:内部函数一般无法修改外部函数的参数;若非要修改则需在内部函数中用nonlocal声明;内部函数可以修改外部list的元素
def createCounter():
    num = 0
    def counter():
        nonlocal num
        num+=1
        return num
    return counter

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值