# Python Coding challenge - Day 62 | What is the output of the following Python code?

### Code -

def multipliers():
return [lambda x, i=i: i * x for i in range(4)]
result = [m(2) for m in multipliers()]
print(result)

### Solution -

The code will correctly generate a list of lambda functions that multiply a given value x by the corresponding value of i from the range (0, 1, 2, 3) and then call each of these lambda functions with the argument 2. The correct output will be:

[0, 2, 4, 6]

Here's how it works:

The multipliers function returns a list of lambda functions where each lambda function takes two arguments, x and i. The default argument i=i captures the current value of i from the loop when the lambda function is created.

The list comprehension [m(2) for m in multipliers()] iterates through each lambda function created in the multipliers list and calls it with 2 as the argument. Each lambda function multiplies 2 by its respective i value from the range, resulting in the output [0, 2, 4, 6].