Friday, 1 August 2025

Python Coding challenge - Day 644| What is the output of the following Python Code?

 


Code Explanation:

1. Function Definition: make_funcs()
def make_funcs():
    return [lambda x: i * x for i in range(3)]
This function returns a list of 3 lambda functions.

Each lambda is defined as: lambda x: i * x

The loop for i in range(3) goes through i = 0, 1, 2

BUT: i is captured by reference, not value — this is called late binding.

2. Calling make_funcs()
funcs = make_funcs()
Now funcs is a list of three lambda functions, but all of them refer to the same i, which ends up being 2 after the loop finishes.

3. Evaluating the Lambdas
results = [f(2) for f in funcs]
Each f(2) now evaluates i * 2, but since i = 2 at the end of the loop:

f(2) = 2 * 2 = 4

All lambdas return 4

So results = [4, 4, 4]

4. Final Output
print(results)

Output:
[4, 4, 4]



0 Comments:

Post a Comment

Popular Posts

Categories

100 Python Programs for Beginner (118) AI (152) Android (25) AngularJS (1) Api (6) Assembly Language (2) aws (27) Azure (8) BI (10) Books (251) Bootcamp (1) C (78) C# (12) C++ (83) Course (84) Coursera (298) Cybersecurity (28) Data Analysis (24) Data Analytics (16) data management (15) Data Science (217) Data Strucures (13) Deep Learning (68) Django (16) Downloads (3) edx (21) Engineering (15) Euron (30) Events (7) Excel (17) Finance (9) flask (3) flutter (1) FPL (17) Generative AI (47) Git (6) Google (47) Hadoop (3) HTML Quiz (1) HTML&CSS (48) IBM (41) IoT (3) IS (25) Java (99) Leet Code (4) Machine Learning (186) Meta (24) MICHIGAN (5) microsoft (9) Nvidia (8) Pandas (11) PHP (20) Projects (32) Python (1218) Python Coding Challenge (884) Python Quiz (342) Python Tips (5) Questions (2) R (72) React (7) Scripting (3) security (4) Selenium Webdriver (4) Software (19) SQL (45) Udemy (17) UX Research (1) web application (11) Web development (7) web scraping (3)

Followers

Python Coding for Kids ( Free Demo for Everyone)