Thursday, 8 May 2025

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

 


Code Explanation:

1. Function make_funcs()
return [lambda: i for i in range(3)]
This creates a list of 3 lambda functions: lambda: i

All these lambdas refer to the same variable i, not its value at that time.

In the list comprehension, i goes from 0 → 1 → 2, but each lambda still just says "return i".

Important: Lambdas capture i by reference, not by value.
That means they all share the final value of i.

2. After make_funcs() is called:

funcs = make_funcs()
funcs is now a list of 3 lambda functions.

All of them will return the current value of i when they're called.

By the end of the loop, i == 2.

3. Calling the lambdas:
results = [f() for f in funcs]
Each lambda is called:

f1() → returns 2

f2() → returns 2

f3() → returns 2

Final Output:

[2, 2, 2]


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)