Python关于高阶函数的练习题
时间: 2023-08-14 13:12:18 浏览: 90
python高阶闭包练习题
1. 编写一个高阶函数`apply_to_list(func, lst)`, 将`func`应用于`lst`中每个元素, 并返回结果列表。
```python
def apply_to_list(func, lst):
return [func(x) for x in lst]
```
2. 编写一个高阶函数`filter_list(func, lst)`, 返回一个仅包含`lst`中满足`func`条件的元素的列表。
```python
def filter_list(func, lst):
return [x for x in lst if func(x)]
```
3. 编写一个高阶函数`accumulate(func, lst, init=0)`, 返回一个累积列表,列表中的每个元素都是`lst`中元素经过`func`计算的结果, `init`是初始值。
```python
def accumulate(func, lst, init=0):
res = []
acc = init
for x in lst:
acc = func(acc, x)
res.append(acc)
return res
```
4. 编写一个高阶函数`flip(func)`, 该函数接受一个函数`func`作为参数, 返回一个新的函数, 该函数与`func`具有相同的功能, 但是将其前两个参数的顺序颠倒。
```python
def flip(func):
def new_func(x, y, *args, **kwargs):
return func(y, x, *args, **kwargs)
return new_func
```
5. 编写一个高阶函数`compose(f, g)`, 返回一个新的函数, 该函数等价于先调用`g`,再将其结果传递给`f`。
```python
def compose(f, g):
def new_func(*args, **kwargs):
return f(g(*args, **kwargs))
return new_func
```
阅读全文