Python中特殊函数详解:filter、map/reduce、装饰器和lambda

1 下载量 50 浏览量 更新于2024-08-28 收藏 169KB PDF 举报
Python 中特殊函数集锦 1. 过滤函数 filter 定义:filter 函数的功能相当于过滤器。调用一个布尔函数 bool_func 来迭代遍历每个列表中的元素;返回一个使 bool_func 返回值为 true 的元素的序列。 filter 函数的使用场景:当我们需要从一个列表中筛选出符合某些条件的元素时,可以使用 filter 函数。例如,我们可以使用 filter 函数来筛选出一个列表中的所有偶数元素。 代码示例: ``` a = [0, 1, 2, 3, 4, 5, 6, 7] b = filter(None, a) print(b) # 输出结果:[1, 2, 3, 4, 5, 6, 7] ``` 2. 映射和归并函数 map/reduce 2.1 map 函数 定义:map 函数的格式:map(func, seq1[, seq2…]) map 函数的作用是将 func 作用于列表中的每一个元素,并用一个列表给出返回值。如果 func 为 None,作用等同于一个 zip() 函数。 map 函数的使用场景:当我们需要将一个列表中的每个元素进行某种操作时,可以使用 map 函数。例如,我们可以使用 map 函数来将一个列表中的所有元素转换为大写字母。 代码示例: ``` print(map(lambda x: x.upper(), ['hello', 'world'])) # 输出结果:['HELLO', 'WORLD'] ``` 2.2 reduce 函数 定义:reduce 函数的格式:reduce(func, seq[, initial]) reduce 函数的作用是将 func 作用于列表中的每个元素,并将结果累加起来。 reduce 函数的使用场景:当我们需要将一个列表中的所有元素进行某种操作,并将结果累加起来时,可以使用 reduce 函数。例如,我们可以使用 reduce 函数来计算一个列表中的所有元素的和。 代码示例: ``` from functools import reduce print(reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])) # 输出结果:15 ``` 3. 匿名函数 lambda 定义:lambda 函数是一个匿名函数,它可以在需要时临时创建一个函数。 lambda 函数的使用场景:当我们需要临时创建一个函数时,可以使用 lambda 函数。例如,我们可以使用 lambda 函数来将一个列表中的所有元素转换为大写字母。 代码示例: ``` print(map(lambda x: x.upper(), ['hello', 'world'])) # 输出结果:['HELLO', 'WORLD'] ``` 4. 装饰器 @ 定义:装饰器 @ 是 Python 中的一种语法糖,它可以用来装饰函数。 装饰器 @ 的使用场景:当我们需要在函数执行之前或之后执行某些操作时,可以使用装饰器 @。例如,我们可以使用装饰器 @ 来记录函数的执行时间。 代码示例: ``` def timer(func): def wrapper(): start_time = time.time() func() end_time = time.time() print(f"函数执行时间:{end_time - start_time} 秒") return wrapper @timer def test_func(): time.sleep(2) test_func() # 输出结果:函数执行时间:2.002143 秒 ``` Python 中的特殊函数集锦包括过滤函数 filter、映射和归并函数 map/reduce、匿名函数 lambda 和装饰器 @。这些函数可以帮助我们更方便地处理列表和函数,并提高代码的可读性和效率。