Introduction
The term slicing in programming usually refers to obtaining a substring, sub-tuple, or sublist from a string, tuple, or list respectively.
Python offers an array of straightforward ways to slice not only these three but any iterable. An iterable is, as the name suggests, any object that can be iterated over.
In this article, we'll go over everything you need to know about Slicing Tuples in Python.
Slicing a Tuple in Python
There are a couple of ways to slice a tuple, most common of which is by using the :
operator with the following syntax:
tuple[start:end]
tuple[start:end:step]
The start
parameter represents the starting index, end
is the ending index, and step
is the number of items that are "stepped" over.
If step
isn't explicitly given, the default value is 1
.
Let's go ahead and slice a tuple:
a_tuple = ('You', 'can’t', 'stop', 'the', 'change,', 'any', 'more', 'than', 'you', 'can', 'stop', 'the', 'suns', 'from', 'setting.')
subtuple = a_tuple[1:5]
print(subtuple)
The resulting tuple will be:
('can’t', 'stop', 'the', 'change,')
Finding the First and the Last n Elements of a Tuple
To find the first and last n
elements of a tuple, we'll slice from the first element to n
and then from -n
to the end of the tuple.
-n
will start counting from the end of the tuple, backwards, giving us the last n
elements:
n = 2
a_tuple = ('I', 'find', 'your', 'lack', 'of', 'faith', 'disturbing.')
first_n_tuple = a_tuple[:n]
print(first_n_tuple)
last_n_tuple = a_tuple[-n:]
print(last_n_tuple)
The resulting subtuples are:
('I', 'find')
('faith', 'disturbing.')
Reverse Tuple with Slice Notation
If we set the step
parameter to -1
, it'll start stepping backwards. If we include the whole, or even a part of the tuple, and just step backwards, it'll effectively reverse the tuple's contents:
a_tuple = ('Fear', 'is', 'the', 'path', 'to', 'the', 'dark', 'side.', 'Fear', 'leads', 'to', 'anger;', 'anger', 'leads', 'to', 'hate;', 'hate', 'leads', 'to', 'suffering.', 'I', 'sense', 'much', 'fear', 'in', 'you.', 7)
reverse_tuple = a_tuple[::-1]
print(reverse_tuple)
The reversed tuple will be:
Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!
(7, 'you.', 'in', 'fear', 'much', 'sense', 'I', 'suffering.', 'to', 'leads', 'hate', 'hate;', 'to', 'leads', 'anger', 'anger;', 'to', 'leads', 'Fear', 'side.', 'dark', 'the', 'to', 'path', 'the', 'is', 'Fear')
Finding Every n-th Element of a Tuple
To find every n
-th element of a tuple, we'll jump over all non-n
elements by setting the step to be n
:
n = 5
a_tuple = ('The', 'dark', 'side', 'of', 'the', 'Force', 'is', 'a', 'pathway', 'to', 'many', 'abilities', 'some', 'consider', 'to', 'be', 'unnatural.')
replaced_tuple = a_tuple[::n]
print(replaced_tuple)
This will result in a tuple:
('The', 'Force', 'many', 'be')
Conclusion
Slicing any sequence in Python is easy, simple, and intuitive. Negative indexing offers an easy way to acquire the first or last few elements of a sequence, or reverse its order.
In this article, we've covered how to apply the Slice Notation on Tuples in Python.