Python data structure tuple
Python Data Structures: Tuples
A tuple is an immutable sequence of Python objects. A tuple is a sequence, just like a list. The difference between a tuple and a list is that tuples cannot be changed, and tuples use parentheses, while lists use square brackets.
Creating a tuple is as simple as putting in different comma-separated values. You can also choose to enclose these comma-separated values in parentheses.
For example
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
An empty tuple is written as two parentheses with nothing inside:
tup1 = ();
To write a tuple containing a single value, you must include a comma, even if there is only one value—-.
tup1 = (50,);
Like string indices, tuple indices start at 0, and they can be split, concatenated, and so on.
Accessing Values in a Tuple
To access a value in a tuple, use square brackets along with the index to obtain the value available at that index.
For example
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print ("tup1[0]: ", tup1[0])
print ("tup2[1:5]: ", tup2[1:5])
When the above code is executed, it produces the following output –
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
Updating values in a tuple
Primitives are immutable, which means you cannot update or change the values of their elements. You can create new primitives by extracting parts of existing primitives, as shown in the following example.
#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# Following action is not valid for tuples
# tup1[0] = 100;
# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print (tup3);
When the above code is executed, it produces the following result –
(12, 34.56, 'abc', 'xyz')
Deleting Tuple Elements
It’s not possible to delete a single tuple element. Of course, it’s fine to discard the unwanted elements and then reassemble them into another tuple.
To explicitly delete an entire tuple, use the del statement.
For example
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print (tup);
del tup;
print ("After deleting tup : ");
print (tup);
- Note – An exception is raised because the tuple no longer exists after del tup is called.
This produces the following result –
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined
Basic Primitive Operations
Primitives respond to the + and * operators much like strings do; they also imply concatenation and repetition, except that the result is a new primitive, not a string.
In fact, tuples respond to all the general sequence operations we used on strings in the previous chapter.
Python Expression | Result | Description |
---|---|---|
len((1, 2, 3)) | 3 | Length |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Concatenation |
(‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | Retelling |
3 in (1, 2, 3) | True | Members |
for x in (1, 2, 3): print x, | 1 2 3 | Iteration |