lambda
lambda argument_list: expression
能够创建内嵌的简单函数(主要供map、filter和reduce使用)
lambda函数有如下特性:
lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。
lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。
lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字
lambda函数示例:
lambda x, y: x*y;函数输入是x和y,输出是它们的积x*y
lambda:None;函数没有输入参数,输出是None
lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)
lambda **kwargs: 1;输入是任意键值对参数,输出是1
map()函数
map(function, iterable, ...)
function -- 函数
iterable -- 一个或多个序列
(python2返回列表,Python3返回迭代对象)
功能
map()是 python 内置的高阶函数,
它接收一个函数 f 和一个 list,
并通过 把函数 f 依次作用在 list 的每个元素上,
得到一个新的object并返回。
filter() 函数
filter(function, iterable)
function -- 判断函数。
iterable -- 可迭代对象。
返回一个迭代器对象
功能
用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,
如果要转换为列表,可以使用 list() 来转换。
接收两个参数,第一个为函数,第二个为序列,
序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,
最后将返回 True 的元素放到新列表中。
reduce() 函数
reduce(function, iterable,[initializer])
function -- 函数,有两个参数
iterable -- 可迭代对象
initializer -- 可选,初始参数
返回函数计算结果
功能
会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:
用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。