Syntactically they are enclosed in parenthesis (or without them) instead of square brackets like lists, but they support arbitrary types and the usual operations available with lists.
>>> tuple = (123, 'Hello World!', 21.03, 'AAA') >>> tuple (123, 'Hello World!', 21.03, 'AAA') >>> len(tuple) 4 >>> tuple + ('BBB', 'CCC') (123, 'Hello World!', 21.03, 'AAA', 'BBB', 'CCC') >>> tuple (123, 'Hello World!', 21.03, 'AAA') >>> tuple 123 >>> tuple 'Hello World!' >>> tuple = 10 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
If you look at the last line above you can see that changing of a tuple value is not permitted as tuples are immutable. That is the main difference between tuples and lists in Python.
The reason to use tuples is to provide a integrity in large programs where you want to make sure that some data structures are not changed accidentally in the program. If you want to design a data structure and do not want to accidentally change the original data, tuples are what you should use.