Question

    What will be the output of the following Python

    code? def modify_list(lst):     for i in range(len(lst)):         lst[i] = lst[i] * 2     lst = [0] * len(lst) numbers = [1, 2, 3, 4] modify_list(numbers) print(numbers)
    A [2, 4, 6, 8] Correct Answer Incorrect Answer
    B [0, 0, 0, 0] Correct Answer Incorrect Answer
    C [1, 2, 3, 4] Correct Answer Incorrect Answer
    D [0, 0, 0] Correct Answer Incorrect Answer
    E Error Correct Answer Incorrect Answer

    Solution

    The function modify_list demonstrates the behavior of mutable lists in Python. Here's the step-by-step explanation: • Inside the function, lst[i] = lst[i] * 2 modifies the original list numbers by doubling each element. This change is reflected globally because lists are mutable. • The next statement, lst = [0] * len(lst), reassigns lst to a new list filled with zeros. However, this reassignment does not affect the original numbers list outside the function because lst is now pointing to a new object. As a result, the original list numbers remains modified as [2, 4, 6, 8]. ________________________________________ Why Other Options Are Incorrect: 2. `[0, 0, 0, 0]: Would be the case if the reassignment inside the function affected the original list, but it does not. 3. `[1, 2, 3, 4]: Incorrect as the original list is modified before reassignment. 4. `[0, 0, 0]: Incorrect due to no truncation or size alteration. 5. Error: The code runs without errors.

    Practice Next