Python Tuples

16 Jun, 2022
Tuple is a collection of Python objects much like a list. The sequence of values stored in a tuple can be of any type, and they are indexed by integers. 
Values of a tuple are syntactically separated by ‘commas’. Although it is not necessary, it is more common to define a tuple by closing the sequence of values in parentheses. This helps in understanding the Python tuples more easily.
In Python, tuples are created by placing a sequence of values separated by ‘comma’ with or without the use of parentheses for grouping the data sequence.
Note: Creation of Python tuple without the use of parentheses is known as Tuple Packing.  
Python3
# Creating an empty TupleTuple1 = ()print("Initial empty Tuple: ")print(Tuple1) # Creating a Tuple# with the use of stringTuple1 = ('Geeks', 'For')print("\nTuple with the use of String: ")print(Tuple1) # Creating a Tuple with# the use of listlist1 = [1, 2, 4, 5, 6]print("\nTuple using List: ")print(tuple(list1)) # Creating a Tuple# with the use of built-in functionTuple1 = tuple('Geeks')print("\nTuple with the use of function: ")print(Tuple1)
Output: 
Initial empty Tuple: 
()

Tuple with the use of String: 
('Geeks', 'For')

Tuple using List: 
(1, 2, 4, 5, 6)

Tuple with the use of function: 
('G', 'e', 'e', 'k', 's') 
Tuples can contain any number of elements and of any datatype (like strings, integers, list, etc.). Tuples can also be created with a single element, but it is a bit tricky. Having one element in the parentheses is not sufficient, there must be a trailing ‘comma’ to make it a tuple. 
Python3
# Creating a Tuple# with Mixed DatatypeTuple1 = (5, 'Welcome', 7, 'Geeks')print("\nTuple with Mixed Datatypes: ")print(Tuple1) # Creating a Tuple# with nested tuplesTuple1 = (0, 1, 2, 3)Tuple2 = ('python', 'geek')Tuple3 = (Tuple1, Tuple2)print("\nTuple with nested tuples: ")print(Tuple3) # Creating a Tuple# with repetitionTuple1 = ('Geeks',) * 3print("\nTuple with repetition: ")print(Tuple1) # Creating a Tuple# with the use of loopTuple1 = ('Geeks')n = 5print("\nTuple with a loop")for i in range(int(n)):    Tuple1 = (Tuple1,)    print(Tuple1)
Output: 
Tuple with Mixed Datatypes: 
(5, 'Welcome', 7, 'Geeks')

Tuple with nested tuples: 
((0, 1, 2, 3), ('python', 'geek'))

Tuple with repetition: 
('Geeks', 'Geeks', 'Geeks')

Tuple with a loop
('Geeks',)
(('Geeks',),)
((('Geeks',),),)
(((('Geeks',),),),)
((((('Geeks',),),),),)
Time complexity: O(1)
Auxiliary Space : O(n)
Tuples are immutable, and usually, they contain a sequence of heterogeneous elements that are accessed via unpacking or indexing (or even by attribute in the case of named tuples). Lists are mutable, and their elements are usually homogeneous and are accessed by iterating over the list.
Note: In unpacking of tuple number of variables on the left-hand side should be equal to a number of values in given tuple a. 
Python3
# Accessing Tuple# with IndexingTuple1 = tuple("Geeks")print("\nFirst element of Tuple: ")print(Tuple1[0])  # Tuple unpackingTuple1 = ("Geeks", "For", "Geeks") # This line unpack# values of Tuple1a, b, c = Tuple1print("\nValues after unpacking: ")print(a)print(b)print(c)
Output: 
First element of Tuple: 
G

Values after unpacking: 
Geeks
For
Geeks
Time complexity: O(1)
Space complexity: O(1)
Concatenation of tuple is the process of joining two or more Tuples. Concatenation is done by the use of ‘+’ operator. Concatenation of tuples is done always from the end of the original tuple. Other arithmetic operations do not apply on Tuples. 
Note- Only the same datatypes can be combined with concatenation, an error arises if a list and a tuple are combined. 
Python3
# Concatenation of tuplesTuple1 = (0, 1, 2, 3)Tuple2 = ('Geeks', 'For', 'Geeks') Tuple3 = Tuple1 + Tuple2 # Printing first Tupleprint("Tuple 1: ")print(Tuple1) # Printing Second Tupleprint("\nTuple2: ")print(Tuple2) # Printing Final Tupleprint("\nTuples after Concatenation: ")print(Tuple3)
Output: 
Tuple 1: 
(0, 1, 2, 3)

Tuple2: 
('Geeks', 'For', 'Geeks')

Tuples after Concatenation: 
(0, 1, 2, 3, 'Geeks', 'For', 'Geeks')
Time Complexity: O(1)
Auxiliary Space: O(1)
Slicing of a Tuple is done to fetch a specific range or slice of sub-elements from a Tuple. Slicing can also be done to lists and arrays. Indexing in a list results to fetching a single element whereas Slicing allows to fetch a set of elements. 
Note- Negative Increment values can also be used to reverse the sequence of Tuples. 
Python3
# Slicing of a Tuple # Slicing of a Tuple# with NumbersTuple1 = tuple('GEEKSFORGEEKS') # Removing First elementprint("Removal of First Element: ")print(Tuple1[1:]) # Reversing the Tupleprint("\nTuple after sequence of Element is reversed: ")print(Tuple1[::-1]) # Printing elements of a Rangeprint("\nPrinting elements between Range 4-9: ")print(Tuple1[4:9])
Output: 
Removal of First Element: 
('E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S')

Tuple after sequence of Element is reversed: 
('S', 'K', 'E', 'E', 'G', 'R', 'O', 'F', 'S', 'K', 'E', 'E', 'G')

Printing elements between Range 4-9: 
('S', 'F', 'O', 'R', 'G')
Time complexity: O(1)
Space complexity: O(1)
Tuples are immutable and hence they do not allow deletion of a part of it. The entire tuple gets deleted by the use of del() method. 
Note- Printing of Tuple after deletion results in an Error. 
Python
# Deleting a Tuple Tuple1 = (0, 1, 2, 3, 4)del Tuple1 print(Tuple1)
Traceback (most recent call last): File “/home/efa50fd0709dec08434191f32275928a.py”, line 7, in print(Tuple1) NameError: name ‘Tuple1’ is not defined
Functions that can be used for both lists and tuples:
len(), max(), min(), sum(), any(), all(), sorted()
Methods that cannot be used for tuples:
append(), insert(), remove(), pop(), clear(), sort(), reverse()
Methods that can be used for both lists and tuples:
count(), Index()
YouTube<div class="player-unavailable"><h1 class="message">An error occurred.</h1><div class="submessage"><a href="https://www.youtube.com/watch?v=lv_Z6loukOs" target="_blank">Try watching this video on www.youtube.com</a>, or enable JavaScript if it is disabled in your browser.</div></div>
Tuples Programs
Print unique rows in a given boolean Strings
Program to generate all possible valid IP addresses from given string
Python Dictionary to find mirror characters in a string
Generate two output strings depending upon occurrence of character in input string in Python
Python groupby method to remove all consecutive duplicates
Convert a list of characters into a string
Remove empty tuples from a list
Reversing a Tuple
Python Set symmetric_difference()
Convert a list of Tuples into Dictionary
Sort a tuple by its float element
Count occurrences of an element in a Tuple
Count the elements in a list until an element is a Tuple
Sort Tuples in Increasing Order by any key
Namedtuple in Python 
Useful Links:
Output of Python Programs
Recent Articles on Python Tuples
Multiple Choice Questions – Python
All articles in Python Category
nikhilaggarwal3
vishwajeet0524
sooda367
gabaa406
promitbodak
santeswar
python-tuple
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Read JSON file using Python
Adding new column to existing DataFrame in Pandas
Python map() function
How to get column names in Pandas dataframe
Different ways to create Pandas Dataframe
Enumerate() in Python
Read a file line by line in Python
How to Install PIP on Windows ?
Python String | replace()
Python OOPs Concepts