11.5. Tuples
11.5. Tuples
A tuple is an ordered sequence of elements of different data types, such as integer, float, string, list or even a tuple.
Elements of a tuple are enclosed in parenthesis (round brackets) and are separated by commas.
Like list and string, elements of a tuple can be accessed using index values, starting from 0.
Examples:
#tuple1 is the tuple of integers
>>> tuple1 = (1,2,3,4,5)
>>> tuple1
(1, 2, 3, 4, 5)
If there is only a single element in a tuple then the element should be followed by a comma.
#incorrect way of assigning single element to tuple
#tuple5 is assigned a single element
>>> tuple5 = (20)
>>> tuple5
20
>>>type(tuple5)
#tuple5 is not of type tuple
#it is treated as integer
#Correct Way of assigning single element to tuple
#tuple5 is assigned a single element
>>> tuple5 = (20,)
#element followed by comma
>>> tuple5
(20,)
>>>type(tuple5) #tuple5 is of type tuple
TUPLE IS IMMUTABLE
Tuple is an immutable data type.
It means that the elements of a tuple cannot be changed after it has been created.
An attempt to do this would lead to an error.
TUPLE OPERATIONS
1. Concatenation
>>> tuple1 = (1,3,5,7,9)
>>> tuple2 = (2,4,6,8,10)
>>> tuple1 + tuple2 #concatenates two tuples
(1, 3, 5, 7, 9, 2, 4, 6, 8, 10)
>>> tuple3 = ('Red','Green','Blue')
>>> tuple4 = ('Cyan', 'Magenta', 'Yellow' ,'Black')
#tuple5 stores elements of tuple3 and tuple4
>>> tuple5 = tuple3 + tuple4
>>> tuple5
('Red','Green','Blue','Cyan','Magenta', 'Yellow','Black')
Concatenation operator can also be used for extending an existing tuple. When we extend a tuple using concatenation a new tuple
is created.
>>> tuple6 = (1,2,3,4,5)
#single element is appended to tuple6
>>> tuple6 = tuple6 + (6,)
>>> tuple6
(1, 2, 3, 4, 5, 6)
#more than one elements are appended
>>> tuple6 = tuple6 + (7,8,9)
>>> tuple6
(1, 2, 3, 4, 5, 6, 7, 8, 9)
2. Repetition
Repetition operation is depicted by the symbol *. It is used to repeat elements of a tuple. We can repeat the tuple elements. The
repetition operator requires the first operand to be a tuple and the second operand to be an integer only.
>>> tuple1 = ('Hello','World')
>>> tuple1 * 3
('Hello', 'World', 'Hello', 'World', 'Hello', 'World')
#tuple with single element
>>> tuple2 = ("Hello",)
>>> tuple2 * 4
('Hello', 'Hello', 'Hello', 'Hello')
3. Membership
The in operator checks if the element is present in the tuple and returns True, else it returns False.
>>> tuple1 = ('Red','Green','Blue')
>>> 'Green' in tuple1
True
The not in operator returns True if the element is not present in the tuple, else it returns False.
>>> tuple1 = ('Red','Green','Blue')
>>> 'Green' not in tuple1
False
4.Slicing
Like string and list, slicing can be applied to tuples also.
#tuple1 is a tuple
>>> tuple1 = (10,20,30,40,50,60,70,80)
TUPLE ASSIGNMENT
Assignment of tuple is a useful feature in Python. It allows a tuple of variables on the left side of the assignment operator to be
assigned respective values from a tuple on the right side. The number of variables on the left should be same as the number of
elements in the tuple.
Example :
#The first element 10 is assigned to num1 and #the second element 20 is assigned to num2.
>>> (num1,num2) = (10,20)
>>> print(num1)
10
>>> print(num2)
20
>>> record = ( "Pooja",40,"CS")
>>> (name,rollNo,subject) = record
>>> name
'Pooja'
>>> rollNo
40
>>> subject
'CS'
>>> (a,b,c,d) = (5,6,8)
ValueError: not enough values to unpack (expected 4, got 3)
If there is an expression on the right side then first that expression is evaluated and finally the result is assigned to the tuple.
Example:
#15 is assigned to num3
#25 is assigned to num4
>>> (num3,num4) = (10+5,20+5)
>>> print(num3)
15
>>> print(num4)
25