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

x = [1, 2, 3]

y = x[:]

x[0] = 4

print(y)

### Solutiomn and Explanation:

When you do y = x[:], you are creating a shallow copy of the list x and assigning it to y. A shallow copy creates a new object but does not recursively copy the objects within the original object. So, while x and y are separate lists, if the elements within them are mutable (like lists themselves), changes to those elements will affect both lists.

Here's a step-by-step breakdown:

x = [1, 2, 3]: You create a list x containing the elements 1, 2, and 3.
y = x[:]: You create a shallow copy of list x and assign it to y. Now y also contains the elements 1, 2, and 3.
x[0] = 4: You modify the first element of list x to 4. Now x becomes [4, 2, 3].
print(y): You print the contents of list y, which remains [1, 2, 3].
Even though you changed x, y remains unchanged because it's a separate list with its own memory space, thanks to the shallow copy operation.