Python Tutorial Python Advanced Python References Python Libraries

Python - Tuples



A Tuple is a type of data container in Python which is used to store multiple data in one variable. It can contain elements of different data types. Elements in a tuple are ordered and can be accessed using it's index number. Unlike lists, tuples are immutable and hence elements of a tuple are not changeable.

Create Tuple

Tuple can be created by separating it's elements by comma , and enclosing with round brackets ( ). Additionally, it can also be created using tuple() function.

#Tuple with multiple datatypes
Info = ('John', 25, 'London') 
print(Info)

#Creating tuple using constructor
colors = tuple(('Red', 'Blue', 'Green')) 
print(colors)

The output of the above code will be:

('John', 25, 'London')
('Red', 'Blue', 'Green')

Access element of a Tuple

An element of a tuple can be accessed with it's index number. Index number for tuple in Python starts with 0 in forward direction and -1 in backward direction. The figure below describes the indexing concept of a tuple.

Tuple Indexing:

Python Tuples Indexing

The example below describes how to access elements of a tuple using its index number.

weekday = ('MON', 'TUE', 'WED', 'THU', 'FRI')
#forward indexing
print(weekday[1])

#backward indexing
print(weekday[-1])

The output of the above code will be:

TUE
FRI   

Access range of elements of a Tuple

Range of elements of a tuple can be selected using statement like [startIndex : endIndex] where end_index is excluded. If start_index or end_index are not mentioned then it takes first and last index numbers of the tuple respectively.

weekday = ('MON', 'TUE', 'WED', 'THU', 'FRI')
print(weekday[1:3])
print(weekday[-5:-1],"\n")

print(weekday[1:])
print(weekday[:-3],"\n")

print(weekday[:])

The output of the above code will be:

('TUE', 'WED')                         
('MON', 'TUE', 'WED', 'THU')           

('TUE', 'WED', 'THU', 'FRI')    
('MON', 'TUE')                     

('MON', 'TUE', 'WED', 'THU', 'FRI')

Modify value of an Element

Tuple's elements are immutable and unchangeable. However, there is a way around to achieve this. First, change tuple into list using list() function, make required changes and finally, convert it back to tuple using tuple() function.

Info = ('John', 25, 'London')
#tuple converted into list
Info = list(Info)   
#Making required changes
Info[0] = 'Marry'   
#list converted back to tuple
Info = tuple(Info)  
print(Info)

The above code will give the following output:

('Marry', 25, 'London')

Add / Delete elements of a Tuple

Tuple's elements are immutable and unchangeable. Therefore it is not possible to delete or modify elements after creating the tuple.

month = ('JAN', 'FEB', 'MAR')
# returns an error
month[3] = 'APR'      
print(month)

The output of the above code will be:

TypeError: 'tuple' object does not support item assignment

Similarly, it is not possible to delete an element of a tuple.

month = ('JAN', 'FEB', 'MAR')
# returns an error
del month[2]          
print(month)

The output of the above code will be:

Traceback (most recent call last):
  File "Main.py", line 3, in <module>
    del month[2]          
TypeError: 'tuple' object doesn't support item deletion

However, the tuple can be deleted itself using del keyword.

month = ('JAN', 'FEB', 'MAR')
# delete tuple completely
del month             
print(month)

The output of the above code will be:

Traceback (most recent call last):
  File "Main.py", line 4, in <module>
    print(month)
NameError: name 'month' is not defined

Tuple Length

The len() function can be used to find out total number of elements in a list, tuple, set or dictionary.

number = (10, 50, 50, 100, 1000, 1000)
print(len(number))

The output of the above code will be:

6

Loop over Tuple

For loop over Tuple:

for loop can be used to access each element of a tuple.

colors = ('Red', 'Blue', 'Green')
for x in colors:
    print(x)

The output of the above code will be:

Red
Blue
Green

While loop over Tuple

By using while loop and len() function, each element of a tuple can be accessed.

colors = ('Red', 'Blue', 'Green')
i = 0
while i < len(colors):
    print(colors[i])
    i = i + 1

The above code will give the following output:

Red
Blue
Green

Check an element in the Tuple

colors = ('Red', 'Blue', 'Green')
if 'white' in colors:
  print('Yes, white is an element of colors.')
else:
  print('No, white is not an element of colors.')

The above code will give the following output:

No, white is not an element of colors.

Join Tuples

The + operator can be used to join two tuples into a new tuple.

colors = ('Red', 'Blue', 'Green')
numbers = (10, 20)
mytuple = colors + numbers
print(mytuple)

The output of the above code will be:

('Red', 'Blue', 'Green', 10, 20)

Single Element Tuple

Add comma , after the element to create single element tuple.

#this is tuple
color = ('Red',)    
print(type(color))

#this is string
color = ('Red')     
print(type(color))

The output of the above code will be:

<class 'tuple'> 
<class 'str'>