Python | Reversing a Tuple
As we know that in Python, tuples are immutable, thus it cannot be changed or altered. This provides us with limited ways of reversing a tuple, unlike a list. We will go through few techniques on how a tuple in python can be reversed.
Examples:
Input : tuples = ('z','a','d','f','g','e','e','k') Output : ('k', 'e', 'e', 'g', 'f', 'd', 'a', 'z') Input : tuples = (10, 11, 12, 13, 14, 15) Output : (15, 14, 13, 12, 11, 10)
Method 1: Using the slicing technique.
In this technique, a copy of the tuple is made and the tuple is not sorted in-place. Since tuples are immutable, there is no way to reverse a tuple in-place. Creating a copy requires more space to hold all of the existing elements. Therefore, this exhausts memory.
# Reversing a tuple using slicing technique # New tuple is created def Reverse(tuples): new_tup = tuples[:: - 1 ] return new_tup # Driver Code tuples = ( 'z' , 'a' , 'd' , 'f' , 'g' , 'e' , 'e' , 'k' ) print (Reverse(tuples)) |
Output:
('k', 'e', 'e', 'g', 'f', 'd', 'a', 'z')
Method 2: Using the reversed() built-in function.
In this method, we do not make any copy of the tuple. Instead, we get a reverse iterator which we use to cycle through the tuple, similar to the list.
# Reversing a list using reversed() def Reverse(tuples): new_tup = () for k in reversed (tuples): new_tup = new_tup + (k,) print new_tup # Driver Code tuples = ( 10 , 11 , 12 , 13 , 14 , 15 ) Reverse(tuples) |
Output:
(15, 14, 13, 12, 11, 10)