Tuples are sequences or a collection of objects separated by commas. They are similar to lists in many ways, except that the elements cannot be changed after they are created. And unlike lists, tuples in Python are immutable objects. Also, they use parentheses and not square brackets.
Creating a tuple is as simple as placing values separated by commas, sometimes between parentheses. Here are some examples:
- tup1 = ( ‘English’, ‘Hindi’, 1998, 2016)
- tup2 = “c”, “d”, “e”, “f”
- tup3 = (5, 6, 7, 8, 9)
As you can see, a tuple may have any number of elements, and they may be of different types – an integer, a list, a string, and so on. Using parentheses is optional, but considered a good practice to follow. Now, let us delve into the specifics.
If you are a beginner and interested to learn more about data science, check out our data science certification from top universities.
Read about: Operators in Python
Tuples in Python
1. Creating a tuple
An empty tuple comprises two parentheses with nothing inside, i.e., (). Here’s how you create it:
empty _tup = ()
Now, let’s see how we can create non-empty tuples. Creating tuples without parentheses is called tuple packing.
Alternatively, you can use parentheses for the same output.
tup= (‘mouse’, ‘keyboard’)
For a single-element tuple, merely putting the one constituent within parentheses would not work. You will have to include a trailing comma to indicate that it is a tuple. Consider the following example.
2. Concatenation, Nesting, and Repetition
To concatenate two tuples in python, you can write the following code:
print(my_tup + your_tup)
(0,1,2,3,4,5, ‘hello’, ‘bye’)
Below is the code for creating nested tuples:
To create a tuple with repetition, follow the steps given below:
(‘hi’, ‘hi’, ‘hi’, ‘hi’)
On writing the above code without commas, you will get a string, hihihihi, as output for new_tup.
Read: Top 5 Python Modules
3. Accessing Tuples
To access values in tuple, you use square brackets with the index. Take the code below to test slicing.
4. Dealing with immutability
It is not possible to update or change the values of elements, but you can create new tuples by taking portions of existing tuples, as demonstrated in the example below.
#action invalid for tuples
#Creating a new tuple
(‘ab’, ‘xy’, 13, 14)
Similarly, you cannot remove individual elements in tuples since they are immutable. However, you can put together another tuple to discard the undesired constituents. And you can remove the entire tuple by using the del statement explicitly.
Also read: Python Developer Salary in India
Basic Tuple Operations
There are various built-in tuple functions in python, such as len(), cmp(), max(), min(), and tuple(seq). Let us demonstrate their use one by one.
- Finding length of a tuple
my_tuple = (‘upgrad’, ‘python’)
- Comparing elements
tup1 = (‘upgrad’,’python’)
tup2 = (‘coder’, 1)
if (cmp(tup1, tup2) != 0):
# cmp() returns 0 if matched, 1 when not tup1
# is longer and -1 when tup1 is shorter
print(‘Not the same’)
Not the same
- Maximum and minimum values
print (‘Maximum element in tuples 1,2: ‘ + str(max(tup1)) + ‘,’ + str(max(tup2)))
print (‘Minimum element in tuples 1,2: ‘ + str(min(tup1)) + ‘,’ + str(min(tup2)))
Maximum element in tuples 1,2: upgrad,coder
Minimum element in tuples 1,2: python,1
You will observe that the max() and min() checks are based on ASCII values. In case of two strings in a tuple, python checks the first different characters in the strings.
- Converting lists and strings into tuples
list1 = [0, 1, 2,3]
print(tuple(‘upgrad’)) # string ‘upgrad’
(‘u’, ‘p’, ‘g’, ‘r’, ‘a’, ‘d’)
Here, a single parameter, such as a list, string, set, dictionary key, is taken and converted into a tuple.
How to create a tuple in a loop
Now, let’s move on to creating tuples in a loop. You can follow the following python code to do it.
n=3 #Number of time the loop runs
or i in range (int(n)):
As you can see, there are different ways of creating a tuple and iterating over it.
Advantages over lists
Lists and tuples in Python are typically used in similar situations. But tuples are preferred over lists due to a variety of reasons. Some of them are listed below.
- Tuples are used for heterogeneous types of data. On the other hand, lists are more suitable for homogenous data types.
- Tuples offer a performance boost as iterating through them is faster as compared to lists. This is attributable to their immutable nature.
- You can go for tuple implementation to keep your data write-protected.
- Immutable elements can be used as a dictionary key.
In this article, we understood all about tuples in Python, from what they are and how to create them to their different operations and benefits. This information will surely come handy as you move forward in your Python learning journey!
If you are reading this article, most likely you have ambitions towards becoming a Python developer. If you’re interested to learn python & want to get your hands dirty on various tools and libraries, check out Executive PG Programme in Data Science.
What are the characteristics of tuples in Python?
In Python, a tuple is an ordered collection of objects that cannot be changed. Here, the objects in Python could be anything like integers, tuples, lists, strings, etc. The insertion order is preserved as the display of output will be dependent upon the order in which elements are inserted. Tuples are immutable, and you cannot modify the objects once they are added to the tuple. Tuples can store both the same as well as different types of objects. Indexing plays a major role in tuples. You can store duplicates in tuples. You can use both positive and negative indexes in tuples, where positive index refers to forward direction and negative index refers to backward direction. You need to use a comma as a separator for separating objects in a tuple.
Are there built-in methods in tuples?
Yes, there are two built-in methods available for use in tuples. Tuples are immutable, and you are not allowed to change the objects in a tuple after adding them. A tuple object can call the two available built-in methods, which are count() and index(). count() will return the number of times any specific value occurs in the entire tuple. index() will search the entire tuple for the specified value and also return the position where that value had been found.
Why are tuples faster than lists in Python?
There are mutable and immutable objects in Python, where lists come under mutable ones, and tuples come under immutable ones. Tuples are stored in a single block of memory, and there is no requirement for extra space for storing new objects.
On the other hand, lists are allocated in two blocks, where one block stores the object information and the other block has a variable size for adding new data. This is the main reason behind tuples being faster than lists in Python. This is another reason why indexing is faster in tuples as compared to lists.