Python的一些高阶用法

一、函数式编程

Python中的函数是对象,可以赋值给变量,Python提供了很多函数式编程特性,如map, reduce, filter, sorted等内置函数,都支持函数作为参数。函数式编程中的要点,包括高阶函数、匿名函数、装饰器、偏函数等等。
1.lambda匿名函数
lambda匿名函数在一些工程项目中经常出现,匿名函数就是没有定义函数的名称,用来实现简单的功能,语法是

#param_list是函数的参数,expression是函数体,用一行表示
lambda param_list: expression
#实例,运行结果是3
func=lambda x, y: x+y
func(1,2)

2.高阶函数
函数可以赋值给变量,函数的参数能接收变量,所以一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
map函数
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。(Iterator是惰性序列,需要通过list()函数让它把返回结果变为list。)
语法:map(function, iterable, …)

def main(x):
    return x*x
y=list(map(main,[0,1,2,3,4,5]))
y
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python高阶用法指的是函数式编程中的一些特性,包括函数作为参数、函数作为返回值、匿名函数、闭包等等。以下是一些常见的Python高阶用法: 1. 函数作为参数 函数作为参数是函数式编程中的一种常见用法。例如,可以使用`sorted()`函数对一个列表进行排序,其中`key`参数可以传递一个函数,用于指定排序规则。例如: ``` my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_list = sorted(my_list, key=lambda x: -x) print(sorted_list) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] ``` 上述代码中,`key`参数传递了一个匿名函数,用于指定按照相反的顺序进行排序。 2. 函数作为返回值 函数作为返回值可以用于实现一些高级的编程技巧。例如,可以定义一个函数生成器,用于生成一系列的函数,每个函数实现不同的功能。例如: ``` def make_adder(n): def adder(x): return x + n return adder add5 = make_adder(5) add10 = make_adder(10) print(add5(3)) # 8 print(add10(3)) # 13 ``` 上述代码中,`make_adder`函数返回一个内部定义的`adder`函数,用于生成加上不同数字的函数。 3. 匿名函数 匿名函数也称为lambda函数,可以用于简化代码。例如,可以使用lambda函数实现上述排序的功能: ``` my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] sorted_list = sorted(my_list, key=lambda x: -x) print(sorted_list) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] ``` 上述代码中,`lambda`关键字用于创建一个匿名函数,用于指定按照相反的顺序进行排序。 4. 闭包 闭包指的是一个函数返回了一个内部定义的函数,并且该内部函数可以访问外部函数的变量。例如: ``` def make_counter(): count = 0 def counter(): nonlocal count count += 1 return count return counter counter = make_counter() print(counter()) # 1 print(counter()) # 2 print(counter()) # 3 ``` 上述代码中,`make_counter`函数返回一个内部定义的`counter`函数,用于生成自增的数字。`counter`函数可以访问外部函数的`count`变量,并且在每次调用时将其加1。 以上是一些常见的Python高阶用法,可以帮助提高代码的可读性和重用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值