Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Introducing Lists Meet Lists Addition

Tuff Kay
Tuff Kay
502 Points

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 27,574 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.