python_高阶函数篇

#1.函数是一等对象,一等对象的特点:

对象是运行时创建的

能赋值给变量或作为数据结构中的元素

能作为参数传递

能作为返回值返回

#2.python中的所有对象都是一等对象, 但是并不是所有的语言中的函数都是一等对象
#3.高阶函数至少要符合下面的特点中的一个:

接收一个或多个函数作为参数

将函数作为返回值返回

#当我们使用一个函数作为参数时, 实际上是将指定的代码传递进了目标函数
def fun1(n): #判断一个数n是否是偶数
if n%2 == 0:
return True
return False

def f(func, l): #根据条件筛选列表l中的数据, 其中, func就是筛选条件
‘’’
自定义函数f , 是根据第一个参数的值来筛选列表l中的对象
并将其返回
‘’’
list =[]
for n in l:
if func(n):
list.append(n)
return list

print(help(f))
l = [1,2,3,4,5,6,7,8,9,10]
print(f(fun1, l))

#python中, 有内置函数filter()可以实现上述功能, filer()可以从序列中过滤出符合条件的元素, 保存到新的序列中

#参数: 1)函数, 根据该函数来过滤序列(可迭代结构)

2)需要过滤的序列(可迭代结构)

3)返回值, 过滤后的新序列(可迭代结构)

print(list(filter(fun1, l)))

#匿名函数, lambda 函数表达式
#lambda的语法: lambda 参数列表: 返回值

#eg:
f1 = lambda a, b: a+b

print(f1(3, 5))

print(list(filter(lambda i : i%2==1,l)))

#内置的map()函数, 可以对迭代对象中的所有元素做指定的操作, 然后将其添加到一个新的对象中返回
r = map(lambda i : i**3, l) #将l中的数据都取3次幂
print(list®)

#sort()用来对列表中的元素进行排序, sort()方法默认是截至比较列表中的元素的大小

#在sort()中可以接受一个关键字参数, key
#key需要一个函数作为参数, 当设置了函数作为参数, 每次都会以列表中的一个元素作为参数来调用函数, 并且使用函数返回值来比较元素的值

#l.sort(key = len) 会根据长度进行排序

#2.sort(key = int), 如果要排序的序列中既有str类型数据,又有int类型数据, 直接用sort()无法直接排序, 则用int()将str类型数据转为int类型

#3.sorted(), 这个函数和sort()方法的用法基本一致, 但是sorted()可以对任意的序列进行排序

#并且使用sorted()排序不会影响原来的对象, 而是返回一个新的对象, eg: sorted(l, key = int), 而sort会改变原来的值

l = [7,5,3,6,1]
print(l)
l.sort()
print(l)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值