Code Explanation:
1. Function Definition
def get_funcs():
return [lambda x=i: x*2 for i in range(3)]
What it does:
Defines a function get_funcs() that returns a list of lambda functions.
The list comprehension [lambda x=i: x*2 for i in range(3)] creates 3 lambdas:
Each lambda captures the current value of i using x=i as a default argument.
Each lambda, when called without arguments, will return x * 2.
What's inside the returned list:
Equivalent to:
[
lambda x=0: x*2,
lambda x=1: x*2,
lambda x=2: x*2
]
Each lambda will return:
0 * 2 = 0
1 * 2 = 2
2 * 2 = 4
2. Calling the Lambdas
results = [f() for f in get_funcs()]
What it does:
Calls each lambda function returned by get_funcs().
Each function f() uses its default argument x=i, and returns x*2.
Step-by-step:
f = lambda x=0: x*2 → f() → returns 0
f = lambda x=1: x*2 → f() → returns 2
f = lambda x=2: x*2 → f() → returns 4
Resulting list:
results = [0, 2, 4]
3. Print the Results
print(results)
Output:
[0, 2, 4]
.png)

0 Comments:
Post a Comment