Table of Contents
Introduction
Tuples are similar to lists with the difference that they are immutable. Once created, their elements cannot be changed unless a new tuple object is created. Tuples are the obvious choice for a collection of constants that never change throughout the program. It is written as a sequence of comma-separated values enclosed within a pair of parentheses ()
.
EXAMPLE Defining a tuple.
1tupA = (1,2,3,3,4,5,6)
2tupB = (1,2,3,"Python","code")
3print(tupA)
4print(tupB)
(1, 2, 3, 3, 4, 5, 6)
(1, 2, 3, 'Python', 'code')
A nested tuple is tuple that contains other tuples as its elements.
EXAMPLE Nested tuple.
1newTup = (tupA, tupB,(2,4,6))
2newTup
((1, 2, 3, 3, 4, 5, 6), (1, 2, 3, 'Python', 'code'), (2, 4, 6))
A tuple can also contain other data structures or types as its elements.
EXAMPLE Tuple can contain heterogeneous data.
1newTup1 = (tupA, [1,2,4],"string")
2newTup1
((1, 2, 3, 3, 4, 5, 6), [1, 2, 4], 'string')
Basic Tuple Operations
Just like lists, tuples can also be concatenated with the +
operator.
EXAMPLE Concatenation of tuples.
1tupA + tupB
(1, 2, 3, 3, 4, 5, 6, 1, 2, 3, 'Python', 'code')
We can obtain the length (number of elements) of a tuple using the len()
function.
EXAMPLE Length of a tuple.
1len(tupA)
7
A tuple can be repeated using the *
operator.
EXAMPLE Repetition of a tuple.
1tupB*2
(1, 2, 3, 'Python', 'code', 1, 2, 3, 'Python', 'code')
The in
keyword serves two purposes:
- used to check if a value is present in a sequence (e.g. list, tuple).
- used to iterate through a sequence in a for loop.
EXAMPLE Boolean expression with a tuple.
1"Python" in tupB # Is "Python" an element of tupB?
True
Tuple Indexing and Slicing
Just like lists, tuples are ordered which means their elements can be accessed by specifying their corresponding indices.
EXAMPLE Indexing of a tuple.
1tupA[1]
2
Due to its immutability, trying to modify a tuple will lead to an error.
EXAMPLE Tuple is immutable.
1tupA[1] = 20
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_6652/2988985137.py in <module>
----> 1 tupA[1] = 20
TypeError: 'tuple' object does not support item assignment
Instead, create a new tuple object by using a new assignment statement.
1tupA = (1,20,3,3,4,5,6)
2tupA
(1, 20, 3, 3, 4, 5, 6)
EXAMPLE Modifying a tuple using a list.
1temp = list(tupA)
2temp[1]=20
3tupA_updated = tuple(temp)
4tupA_updated
(1, 20, 3, 3, 4, 5, 6)
Slicing for tuples are similar to those for lists. Recall the slicing syntax:
sequence[start:stop:step]
Parameter | Description |
---|---|
start |
Optional (default=0). An integer number specifying at which position to start the slicing. |
stop |
An integer number specifying at which position to end the slicing. |
step |
Optional (default=1). An integer number specifying the step of the slicing. |
Python uses half-open intervals: the start index is included while the stop index is not.
EXAMPLE Indexing of a tuple.
1tup1 = (2,4,6,8,9,10)
2tup1[0]
2
EXAMPLE Negative indexing.
1tup1[-2]
9
EXAMPLE Slicing of a tuple.
1tup1[2:]
(6, 8, 9, 10)
Chain indexing and slicing work for a nested tuple.
EXAMPLE Indexing of a nested tuple.
1tupA = (1,2,3,3,4,5,6)
2newTup1 = (tupA, [1,2,4],"string")
3newTup1[0]
(1, 2, 3, 3, 4, 5, 6)
EXAMPLE Chain indexing and slicing of a nested tuple.
1newTup1[0][2:5]
(3, 3, 4)
ADVERTISEMENT
Tuple Methods
The count()
method returns the number of elements with the specified value.
EXAMPLE count()
method.
1numbers = (1,2,2,2,3,3,4,5,6,6,8)
2numbers.count(3) # counts how many times the number 3 appears
2
The index()
method searches the tuple for a specified value and returns its index.
EXAMPLE index()
method.
1numbers.index(5)
7
In cases where there is more than one occurrence of the specified value, the index() method will only return the first index.
EXAMPLE index()
method.
1numbers.index(2)
1
In contrast to lists, we see that there are fewer methods available to tuples since they are immutable.
Method | Description |
---|---|
count() |
Returns the number of elements with the specified value. |
index() |
Returns the index of the first element with the specified value. |