Python Programming/Tuples
From Wikibooks, the open-content textbooks collection
| Previous: Lists | Index | Next: Dictionaries |
Contents |
[edit] About tuples in Python
A tuple in Python is much like a list except that it is immutable (unchangeable) once created. They are generally used for data which should not be edited.
[edit] Tuple notation
Tuples may be created directly or converted from lists. Generally, tuples are enclosed in parenthesis.
>>> l = [1, 'a', [6, 3.14]] >>> t = (1, 'a', [6, 3.14]) >>> t (1, 'a', [6, 3.1400000000000001]) >>> tuple(l) (1, 'a', [6, 3.1400000000000001]) >>> t == tuple(l) True >>> t == l False
A one item tuple is created by a item in parens followed by a comma:
>>> t = ('A single item tuple',) >>> t ('A single item tuple',)
Also, tuples will be created from items separated by commas.
>>> t = 'A', 'tuple', 'needs', 'no', 'parens' >>> t ('A', 'tuple', 'needs', 'no', 'parens')
[edit] Packing and Unpacking
You can also perform multiple assignment using tuples.
>>> article, noun, verb, adjective, direct_object = t
>>> noun
'tuple'
Note that either, or both sides of an assignment operator can consist of tuples.
>>> a, b = 1, 2 >>> b 2
Assigning a tuple to a several different variables is called "tuple unpacking," while assigning multiple values to a tuple in one variable is called "tuple packing." When unpacking a tuple, or performing multiple assignment, you must have the same number of variables being assigned to as values being assigned.
[edit] Operations on tuples
These are the same as for lists except that we may not assign to indices or slices, and there is no "append" operator.
>>> a = (1, 2) >>> b = (3, 4) >>> a + b (1, 2, 3, 4) >>> a (1, 2) >>> b (3, 4) >>> print a.append(3) Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'tuple' object has no attribute 'append' >>> a (1, 2) >>> a[0] = 0 Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: object does not support item assignment >>> a (1, 2)
For lists we would have had:
>>> a = [1, 2] >>> b = [3, 4] >>> a + b [1, 2, 3, 4] >>> a [1, 2] >>> b [3, 4] >>> a.append(3) >>> a [1, 2, 3] >>> a[0] = 0 >>> a [0, 2, 3]
[edit] Tuple Attributes
Length: Finding the length of a tuple is the same as with lists; use the built in len() method.
>>> len( ( 1, 2, 3) ) 3 >>> a = ( 1, 2, 3, 4 ) >>> len( a ) 4
[edit] Conversions
Convert list to tuples using the built in tuple() method.
>>> l = [4, 5, 6] >>> tuple(l) (4, 5, 6)
[edit] Uses of Tuples
Tuples can be used like lists and are appropriate when a list may be used but the size is known and small. One very useful situation is returning multiple values from a function. To return multiple values in many other languages requires creating an object or container of some type, but in Python it is easy:
def func(x,y): # code to compute a and b return (a,b)
This can be combined with the unpacking technique above in later code to retrieve both return values:
(a,b) = func(1,2)
| Previous: Lists | Index | Next: Dictionaries |

