*Memos:
- My post explains variable assignment.
- My post explains iterable unpacking in variable assignment.
- My post explains parameters and arguments.
- My post explains positional-only parameters in function.
- My post explains keyword-only parameters in function.
- My post explains positional-only parameters and keyword-only parameters together in function.
Lambda:
- is the function which can be stored in a variable and parameter.
- is an expression.
- doesn't have
def
andidentifier
. - cannot have
return
andpass
. - is almost same as a normal function except these above.
- You can see Lambda Expressions
You can use Lambda as shown below:
# Equivalent
v1 = lambda: 2 # def func(): return 2
v1 = lambda x: x # def func(x): return x
v1 = lambda x, y: x+y # def func(x, y): return x+y
v1 = lambda x, y=3: x+y # def func(x, y=3): return x+y
v1 = lambda x=2, y=3: x+y # def func(x=2, y=3): return x+y
v1 = lambda x=2, /, y=3, *, z=4: x+y+z # def func(x=2, /, y=3, *, z=4):
# No error # return x+y+z
v1 = v2 = lambda: 2
v1, v2 = [lambda: 2, lambda: 3]
# No error
v1 = def func() return 2
v1 = func() return 2
v1 = lambda: return 2
v1 = lambda: pass
# SyntaxError: invalid syntax
v1 = lambda: 2
print(v1()) # 2
v1 = lambda x: x
print(v1(2)) # 2
print(v1(x=2)) # 2
v1 = lambda x, y: x+y
print(v1(2, 3)) # 5
print(v1(2, y=3)) # 5
print(v1(x=2, y=3)) # 5
print(v1(y=3, x=2)) # 5
v1 = lambda x=2, y=3: x+y
print(v1(6)) # 9
print(v1(x=6)) # 9
print(v1(y=5)) # 7
print(v1(6, 5)) # 11
print(v1(6, y=5)) # 11
print(v1(x=6, y=5)) # 11
print(v1(y=5, x=6)) # 11
v1 = lambda x=2, /, y=3, *, z=4: x+y+z
print(v1(6, 5, z=4)) # 15
print(v1(6, y=5, z=4)) # 15
print(v1(6, z=4, y=5)) # 15
v1 = v2 = lambda: 2
print(v1(), v2()) # 2 2
v1, v2 = [lambda: 2, lambda: 3]
print(v1(), v2()) # 2 3
def func(x=lambda: 2):
print(x())
func() # 2
func(lambda: 4) # 4
func(x=lambda: 4) # 4
Top comments (0)