Code Explanation:
1) def f(x, arr=[]):
Defines a function f with two parameters:
x → required argument
arr → optional argument, defaulting to an empty list []
In Python, default arguments are evaluated only once when the function is defined, not each time it is called.
So the same list arr is reused across function calls if not explicitly provided.
2) First call → print(f(1))
No second argument given, so arr refers to the default list [].
Inside function:
arr.append(1) → list becomes [1].
Returns [1].
Output:
[1]
3) Second call → print(f(2))
Again no second argument given, so same default list is reused.
That list already has [1] in it.
Inside function:
arr.append(2) → list becomes [1, 2].
Returns [1, 2].
Output:
[1, 2]
4) Third call → print(f(3, []))
This time we explicitly pass a new empty list [] for arr.
So this call does not reuse the default list — it works on a fresh list.
Inside function:
arr.append(3) → list becomes [3].
Returns [3].
Output:
[3]
Final Output
[1]
[1, 2]
[3]
Download Book - 500 Days Python Coding Challenges with Explanation
.png)

0 Comments:
Post a Comment