Hack Bulgaria
github.com/HackBulgaria
Lambda expressions изискват само един израз!
lambda arguments: expression
Lambda expressions имат своя еквивалент и при нормалния синтаксис за създаване на функции!
lambda arguments: expression
def func(arguments):
return expression
>>> lambda x: x + 2
<function <lambda> at 0x7f1ba484dc80>
За да използваме Lambda expressions трябва да ги присвоим на обект или да ги върнем като резултат
>>> sqrt = lambda x: x**2
>>> sqrt
<function <lambda> at 0x7f1ba2467bf8>
>>> sqrt()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: <lambda>() missing 1 required positional argument: 'x'
>>> sqrt(3)
9
>>> sqrt(5)
25
>>> add = lambda i, j: i + j
>>> add
<function <lambda> at 0x7f1ba484dc80>
>>> add()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: <lambda>() missing 2 required positional arguments: 'i' and 'j'
>>> add(3, 4)
7
>>> add(3, -4)
-1
>>> def sub_by(number):
... return lambda x: x / number
...
>>> sub_by(5)
<function sub_by.<locals>.<lambda> at 0x7f1ba484dae8>
>>> s = sub_by(5)
>>> s(10)
2.0
>>> s(1)
0.2
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> r = map(lambda x: x + 10, a)
>>> r
<map object at 0x7f1ba241c198>
>>> for el in r:
... print(el)
...
10
11
12
13
14
15
16
17
18
19
By Hack Bulgaria