There are lots of article to say that tuple in pyton in immutable, but after my test, this is not true.
Please see the example:
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
>>> L = [1,2,3]
# define a typle
>>> dd = tuple(L)
# print all methods of tuple
>>> print dir(dd)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__get
slice__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__
lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__'
, '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count
', 'index']
>>> print dd
(1, 2, 3)
>>> dd.__add__("a")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate tuple (not "str") to tuple
# Note, tuple is changed.
>>> dd.__add__(dd)
(1, 2, 3, 1, 2, 3)
>>>
refs: http://www.diveintopython.net/native_data_types/tuples.html