Python comes with a string slicing system that is a Swiss army knife of functionality. Bracket notation allows us to slice Python strings to get one or more characters in order or in reverse. In this complete guide on slicing Python strings we’ll cover:
- Slicing a Single Character from a Python String
- Using a Negative Index While Slicing Python Strings
- Slicing Python Strings by Position
- Slicing a Python String for Every n Indices
Before we get into how to slice Python strings, we have to have some context on the string to slice. So the first thing we’ll do in our program is declare the string. For this example, let’s use
s = "abcdefg"
Slicing Python Strings: A Single Character
The most basic way to slice Python strings is to slice for a single character. Remember that strings start at index 0. In the example below we are slicing for index number 3, which is the fourth character,
# any character print(s) # expect d
Slicing Python Strings: Negative Indices
Unlike Java or C#, negative indices are permitted in Python. Negative indices are a neat trick that allow you to access the character n from the end. For example, in the line below we’ll access the character second from the end,
# negative indices print(s[-2]) # expect second to last = f
Slicing Python Strings: Substrings By Position
Now let’s take a look at slicing Python strings by position. You can slice by position in Python using the colon operator. We’ll cover two examples of how to slice by position.
First, we’ll slice from positions one to four, which will get us entries one, two and three,
bcd. Python string slicing is inclusive for the first index, but exclusive on the second one. For our second example, we’ll leave the first index blank, which will default our slice to the start of the string, index zero. This will get us the first two entries,
# slicing positions print(s[1:4]) # expect 1, 2, 3 = bcd print(s[:2]) # expect beginning to 1 = ab
Slicing Python Strings: Slicing Positions n at a time
Lastly, let’s take a look at slicing Python strings for every nth entry. We do this by adding a second colon inside the brackets. Here we’ll cover four examples of slicing Python strings for every nth entry.
First, we’ll slice from index zero to the end by two, which should get us
aceg. Next, we’ll slice from index zero to seven by three or
adg. Note that there are seven total letters in the string which means there are only indices zero to six. However, the closing end of indices when slicing strings in Python is open so we end our slice on seven.
Third, we’ll slice backwards from indices five to one by negative one,
fedc. Finally, we’ll cover slicing from the second to last index to the fifth to last index by two or
# slicing positions _n_ at a time print(s[0::2]) # expect every 2 from 0 to end = aceg print(s[0:7:3]) # expect every 3 from 0 to 6 = adg print(s[5:1:-1]) # expect reverse entries from 5 to 2 = fedc print(s[-2:-5:-2]) # expect reverse every other entry from second to fifth to last = fd
Results from Python String Slicing
When we run all those lines for the string
abcdefg, we should get the results as commented. The output will look like the image below.
Summary of Slicing Python Strings
In this post we went over how to slice Python strings forward, backwards, and while skipping count. First, we learned how to slice a single character out of a string. Then we looked at using negative indices. Next, we looked at how to slice substrings by position and for every nth index.
- Neural Network Code in Python from Scratch
- How to Build a Text Summarizer
- Running Functions in Parallel in Python
- Matrix Multiplication in Python
To learn more, feel free to reach out to me @yujian_tang on Twitter, connect with me on LinkedIn, and join our Discord. Remember to follow the blog to stay updated with cool Python projects and ways to level up your Software and Python skills! If you liked this article, please Tweet it, share it on LinkedIn, or tell your friends!
I run this site to help you and others like you find cool projects and practice software skills. If this is helpful for you and you enjoy your ad free site, please help fund this site by donating below! If you can’t donate right now, please think of us next time.
Make a one-time donation
Make a monthly donation
Make a yearly donation
Choose an amount
Or enter a custom amount
Your contribution is appreciated.
Your contribution is appreciated.
Your contribution is appreciated.DonateDonate monthlyDonate yearly