lambda 可以理解为一个小的匿名函数, lambda 函数可以使用任意数量的参数, 但只能有一个表达式
模板: lambda argument: manipulate(argument)
参数: argument 就是这个匿名函数传入的参数, 冒号后面是我们对这个参数的操作方法
- numbers = [1,2,3,4,5]
- add_one = list(map(lambda n:n + 1,numbers))
- print(list(add_one))
- [2, 3, 4, 5, 6]
- map()
map() 函数的主要作用是可以把一个方法依次执行在一个可迭代的序列上, 比如 List 等, 具体的信息如下:
基础语法: map(fun, iterable)
参数: fun 是 map 传递给定可迭代序列的每个元素的函数. iterable 是一个可以迭代的序列, 序列中的每一个元素都可以执行 fun
返回值: map object
- nums = [3,"23",-2]
- print(list(map(float,nums)))
- Out: [3.0, 23.0, -2.0]
- filter()
filter() 方法借助于一个函数来过滤给定的序列, 该函数测试序列中的每个元素是否为真.
基础语法: filter(fun, iterable)
参数: fun 测试 iterable 序列中的每个元素执行结果是否为 True,iterable 为被过滤的可迭代序列
返回值: 可迭代的序列, 包含元素对于 fun 的执行结果都为 True
要先有一个能返回 True 或者 False 的方法, 或者表达式作为过滤条件就行了
简而言之就是 filter 可以帮助我们根据给出的条件过滤一组数据并返回结果
- def fun(variable):
- letters = ['a','e','i','o','u']
- if (variable in letters):
- return True
- else:
- return False
- sequence = ['I','l','o','v','e','p','y','t','h','o','n']
- filtered = list(filter(fun,sequence))
- print(filtered)
- sequence = ['I','l','o','v','e','p','y','t','h','o','n']
- result = filter(lambda x: x in ['a','e','i','o','u'],sequence)
- print(list(result))
- ['o', 'e', 'o']
- reduce()
Reduce 是一个非常有用的函数, 用于在列表上执行某些计算并返回结果. 它将滚动计算应用于列表中的连续值. 例如, 如果要计算整数列表的累积乘, 或者求和等等
基础语法: reduce(function, iterable)
参数: fun 是连续作用于 iterable 每一个元素的方法, 新的参数为上一次执行的结果, iterable 为被过滤的可迭代序列
返回值: 最终的 function 返回结果
- from functools import reduce
- numbers = [1,2,3,4]
- result_multiply = reduce(lambda x,y:x * y,numbers)
- result_add = reduce(lambda x,y:x + y,numbers)
- print(result_multiply)
- print(result_add)
- 24
- 10
来源: http://www.bubuko.com/infodetail-3282707.html