Sunday, 11 May 2025

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

 


Code Explanation:

1. Function Definition: append_to_list(val, lst=[])
def append_to_list(val, lst=[]):
    lst.append(val)
    return lst
This function is defined with two parameters:

val: The value that will be appended to the list.

lst: The list to which the value will be added. It has a default value of an empty list [].

Important Concept: The parameter lst=[] uses a mutable default argument (a list). In Python, default mutable arguments (like lists, dictionaries) are not re-initialized every time the function is called. Instead, they are modified in-place across function calls.

2. First Function Call: append_to_list(1)
print(append_to_list(1))
Here, append_to_list(1) is called with val=1 and the default lst=[].

Since the list lst is empty initially, 1 is appended to it, changing lst to [1].

The function returns [1], and that is printed.

Output after first call:
[1]

3. Second Function Call: append_to_list(2)
print(append_to_list(2))
In the second call, append_to_list(2) is executed with val=2.

Now, because of the mutable default argument, the same list lst (from the previous call) is used again. This means the list now already contains [1] from the previous call.

The value 2 is appended to this list, updating it to [1, 2].

The function returns [1, 2], and that is printed.

Output after second call:
[1, 2]

4. Why Does This Happen?
Mutable Default Argument: The default value lst=[] is only initialized once when the function is defined. If the function is called multiple times and doesn't explicitly pass the lst argument, it keeps modifying the same list object. This is why in the second function call, the value 2 is appended to the same list that had 1 from the first call.

Mutable objects like lists, dictionaries are shared across function calls when used as default arguments.

5. Final Output
When the code is executed:
print(append_to_list(1))  # Output: [1]
print(append_to_list(2))  # Output: [1, 2]
The outputs printed are:

Final Output:

[1]
[1, 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)