32
String Slicing in Python Explained
String slicing lets you slice into Python strings, and work with their
slices
, or substrings
—instead of the whole string.As strings in Python are immutable, you cannot change them in place. In this tutorial, you'll learn to slice Python strings and work with substrings.
<str>[start:stop:step]
The above line of code:
<str>
—starting at index start
, extending up to stop-1
in steps of step
.start
index is optional: the slice starts from the beginning of the string by default.stop
index is also optional: the slice extends up to the end of the string by default.step
value is optional too. The default value of step is 1
and includes all characters in the string.my_str = "Python3"
▶ Let's use
enumerate()
and examine the characters at each index in the string.for idx,char in enumerate(my_str):
print(f"At index {idx}: letter {char}")
# Output
At index 0: letter P
At index 1: letter y
At index 2: letter t
At index 3: letter h
At index 4: letter o
At index 5: letter n
At index 6: letter 3
In the above code, you've used the
enumerate()
function in conjunction with the for
loop. This lets you loop through iterables, and access items along with their indices simultaneously—without having to use the range()
function to get the indices.▶ Let's now use string slicing.
# With `start` and `stop` indices
print(my_str[1:6])
# Output: ython
# Without `stop` index
print(my_str[1:])
# Output: ython3
# Without `start` index
print(my_str[:5])
# Output: Pytho
# With `step = 2`, slice includes every second character
print(my_str[::2])
# Output: Pto3
# Without `start`, `stop` and `step`: slice is entire string
print(my_str[::])
# Output: Python3
When you set
step
to a negative value, you can get slices starting from the end of the string—reverse substrings.If
step = -1
you get a slice starting from the end of the string, and including every character.This can be super handy when you'd like to reverse a string, like this:
print(my_str[::-1])
# Output: 3nohtyP
To sum up,
<str>[start:stop:step]
is the syntax to obtain string slices or substrings in Python.Now that you've learned how to slice strings, it's time to put your skills to practice, maybe? Happy learning and coding!
Cover image: Photo by Tamanna Rumee on Unsplash
32