匿名函数 lambda
lambda 匿名函数
lambda也被称为匿名函数, 既没有确定的函数名称. 在有些时候, 不需要显示定义函数, 直接传入具体的操作则可以使用lambda更方便.
lambda 语法
lambda argument_list : expression
#argument_list为参数列表, 其有多种形式, expression则为表达式, 表示我们需要执行的操作
lambda x,y: x+y
#该语句表示输入两个参数x,y, 并返回x+y的值
常用情形
lambda经常与其他函数联合使用, 下面进行分别阐述
filter
filter(function, iterable)
#函数用于过滤序列, 过滤掉不符合条件的元素, 返回一个迭代器对象, 如果要转换为列表, 可以使用 list() 来转换.
1 | # 过滤出列表中的所有奇数 |
转换为filter + lambda表达式可以写成
1 | newlist=filter(lambda n: n if n % 2 ==1 else None, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) |
map
map(function, iterable, ...)
#根据提供的函数对指定序列做映射, 生成一个新的迭代器
1 | def square(x): # 计算平方数 |
sorted
sorted(iterable, key=None, reverse=False)
#函数对所有可迭代的对象进行排序操作.(所有可迭代的对象为重点, 该函数与sort的区别是, sort是list上的方法, 而sorted可以对所有可迭代对象进行排序操作, list dict tuple等).
1 | sorted([5, 2, 3, 1, 4]) |
当传入参数为复杂的组合对象时, 如果需要进行更复杂的排序操作, 则可以借助lambda实现复杂的排序操纵.
1 | #有一个学生成绩字典, 每一项中有五门成绩, 分别是语 数 外 物理 和化学 |