
In Python, everything is an object. One of the most common concepts you’ll encounter is Mutable vs Immutable Python. But some objects can change (Mutable), and some cannot (Immutable).
- Immutable (Cannot Change): Integers, Floats, Strings, Tuples.
- Mutable (Can Change): Lists, Dictionaries, Sets.
The “Gotcha” Moment
If you assign a mutable object to a new variable, you don’t get a copy; you get a reference to the same object.
# List A list_a = [1, 2, 3] # List B is now THE SAME object as List A list_b = list_a # We change List B list_b.append(4) # SURPRISE! List A also changed! print(list_a) # Output: [1, 2, 3, 4]
This happens because they are both pointing to the same list in memory.
How to Fix It (Making a Real Copy)
If you want a truly separate copy, you must ask for it explicitly.
# The .copy() method creates a NEW list with the same data list_b = list_a.copy() list_b.append(4) print(list_a) # Output: [1, 2, 3] (Safe!)
Understanding this difference is critical when passing lists into functions!





