python学习笔记(十三)之lambda表达式

时间:2023-03-09 09:37:25
python学习笔记(十三)之lambda表达式

lambda表达式:

  用法 lambda x : 2 * x + 1

  其中:前面是参数,后面是返回值。

 >>> def ds(x):
... return 2 * x + 1
...
>>> ds(5)
11
>>> lambda x : 2*x+1
<function <lambda> at 0x7fb02a635ea0>
>>> g = lambda x : 2*x+1
>>> g(2)
5
>>> def add(x,y):
... return x + y
...
>>> add(4,5)
9
>>> g = lambda x,y = x + y
File "<stdin>", line 1
g = lambda x,y = x + y
^
SyntaxError: invalid syntax
>>> g = lambda x,y : x+y
>>> g(4,5)
9

lambda表达式作用:

  1. 是代码更加简洁
  2. 不需要命名
  3. 简化代码的可读性,阅读时无需调到def定义部分。

filter()方法

  filter(function or None, iterable) -->filter object

  当第一个参数为None时,返回iterable中为True的对象,当第一个参数部位None时,返回使函数返回True的iterable中的对象。

 >>> list(filter(None, [True,1,0,False]))
[True, 1]
>>> list(filter(lambda x : x % 2, range(10)))
[1, 3, 5, 7, 9]

map()方法

  map(func, *iterables)

  将后面的参数通过func进行一次迭代处理。  

 >>> list(map(lambda x:2 * x, range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]