assignment statements: lists vs. strings
me at privacy.net
Mon Feb 2 17:07:01 CET 2004
klaus_neuner82 at yahoo.de (Klaus Neuner) wrote in
news:3e96ebd7.0402020750.3b0b9b82 at posting.google.com:
> I would like to understand the reason for the following difference
> between dealing with lists and dealing with strings: What is this
> difference good for? How it is accounted for in Python slang?
>>>> string1 = "bla"
>>>> string2 = string1
>>>> string1 = string1 + "bla"
>>>> list1 = [1,2]
>>>> list2 = list1
> [1, 2, 1]
> [1, 2, 1]
You aren't comparing like with like here. You can do exactly the same as
your string example using a list:
>>> list1 = [1,2]
>>> list2 = list1
>>> list1 = list1 + [3,4]
[1, 2, 3, 4]
The difference is that addition of strings, or lists, or anything else,
creates a new object. The append method of the list type modifies an
existing object. The string types don't have an append method because they
are IMMUTABLE: immutable objects, once created never change their values.
Mutable objects can change their values.
Remember that assignment always creates another reference to an existing
object, it never makes a copy of an object.
Builtin immutable objects include: int, long, float, str, unicode, tuple
Builtin mutable objects include: list, dict
More information about the Python-list