Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Introducing Lists Meet Lists Addition

Why are lists mutable but not strings?

I understand why functionally, but I'm wondering what the philosophy of this choice was and the implications it has.

1 Answer

Jeff Muday
Jeff Muday
Treehouse Moderator 28,717 Points

The difference between immutable and mutable is the ability to change in place. It makes sense you want to change things.

1) Space: Lists and Dictionaries can be added to, removed from, or rearranged. It SAVES significant memory space to change in place, and this is very important when handling big data... You can have very long lists and dictionaries and structures in memory to work on.

2) Flexibility: the structure can be freely changed by multiple functions and processes.

But what is the advantage of immutable (or unchanging types)? There are two major reasons for this...

1) Constant. This is stucture that is referred to again and again. This is good for the safety and integrity of the data structure.

2) Speed. Immutable types can be represented as memory structures that can be referred to by only a few pointers sometimes just a single pointer and size dimension. It is extremely quick to reference these structures.

That's it in a nutshell.