Mutable vs Immutable Objects

A mutable object can be changed after it's created, and an immutable object can't.

For example, lists are mutable in Python:

int_list = [4, 9] int_list[0] = 1 # int_list is now [1, 9]

And tuples are immutable:

int_tuple = (4, 9) int_tuple[0] = 1 # raises: TypeError: 'tuple' object does not support item assignment

Strings can be mutable or immutable depending on the language.

Strings are immutable in Python:

test_string = 'mutable?' test_string[7] = '!' # TypeError: 'str' object does not support item assignment

But in some other languages, like Ruby, strings are mutable:

test_string = 'mutable?' test_string[7] = '!' # test_string is now 'mutable!'

Mutable objects are nice because you can make changes in-place, without allocating a new object. But be careful—whenever you make an in-place change to an object, all references to that object will now reflect the change.

Pass Your Interviews with My FREE 7-Day Crash Course

I'll teach you the right way of thinking for breaking down tricky algorithmic coding interview questions you've never seen before.

No prior computer science training necessary—I'll get you up to speed quickly, skipping all the overly academic stuff.

No spam. One-click unsubscribe if you hate it.

What's next?

If you're ready to start applying these concepts to some problems, check out our mock coding interview questions.

They mimic a real interview by offering hints when you're stuck or you're missing an optimization.

Try some questions now

Psst. Pass it on.

. . .