A sequence of Unicode character(s) is called a string. It comprises a sequence of characters or a series that may contain special characters and alphanumeric. This article focuses on the concept of the substring in python and how it works. 

What Is a Substring in Python?

Part of a string is known as a substring. There are multiple methods for creating a substring in python and checking if a substring is present in a string, index of a substring, and more. Let us look at various operations related to substrings. 

Python Training Course

Learn Data Operations in PythonExplore Course
Python Training Course

How to Create a Substring

A substring can be created using many ways. One of the popular ways is string slicing. 

To create a list of substrings based on a specific delimiter present in a string, we use the split() function. 

A substring in python can be generated by slicing as follows:

string[begin: end: step]


begin: is the starting index of the substring. The substring includes this element. If begin is not mentioned while slicing, it is assumed as 0. 

Step:  is the character that has to be included after the current character. The default value of the step is one and is assumed as one if not mentioned. 

End: is the ending index of the substring. This element is excluded in the substring. It is assumed to be the same as the string's length if the value is not specified or the given value exceeds the string length. 

The syntax for slicing a string:

1. string[begin: end]: substring includes characters from start to end-1. Example:

s= 'substring in python.'


Output: ‘bstring’

2. string[: end]: substring includes characters from start to end-1. Example for slicing without begin index:

s= ' substring in python.'


Output: 'substri

3. string[begin:]: substring includes characters from the begin index to the end of the string. Example for slicing without end index:

s= ‘substring in python.'


Output: ‘ubstring in python'

4. string[begin:end: step]: substring includes characters from start to end-1 excusing every step character. Example for slicing with step-index:

s= ‘substring in python'


Output: ‘btig’

5. s[:]- substring includes the entire string. Example for slicing without begin or end index :

s= ‘substring in python'


Output: 'usbstring in python'

6. s[index]: substring includes a single character. Example for getting character at a given index:

s= ‘substring in python'


Output : ‘u’

7. Negative slicing- Use a negative index for getting a substring. Example:

s= ' substring in python '


Output: ‘substring in pyt’

8. Reversing a string- Slicing can be used to return the reverse of string using a negative step. Example:

s= 'substring in python'


Output: ‘nohtyp ni gnirtsbus’

The output of all the above templates:


Code to demonstrate the creation of substring in python:

s= ' substring in python '

# create a substring using slicing

a = s[11:]


# Create list of substrings using split function

b = s.split()




Free Course: Programming with Python

Learn the Basics of Programming with PythonEnroll Now
Free Course: Programming with Python

How to Check if the Substring Is Found

find() function or the in operator is used to check if a substring is present in the given string or not. 

We can use in operator or find() function to check if the string's substring is present in the string. Here is an example 

s= ' substring in python '

if 'python' in s:

    print('Substring found')

if s.find('all') != -1:

    print('Substring found')


     print('Substring not found')



To find the number of occurrences of a given substring in the input string, use the count() function as follows: 

s = 'This is the count'

print('Substring count =', s.count('i'))



To find all indexes of substring in python, there is no inbuilt function. But we can define one using find() function to get the list of all indexes for a substring. Here’s how:

def indexes(string, substring):

    l = []

    length = len(string)

    index = 0

    while index < length:

        i = string.find(substring, index)

        if i == -1:

            return l


        index = i + 1

    return l

s = 'substring in python'

print(indexes(s, 'i'))



How to Get the Substring From a Given String Using List Slicing

When we are given a string, we can get the substring in python using list slicing. Here are a few examples:

1. Code to create a substring in python from a string 

# Initialise the string 

string = 'substring in python'

print ("Initial string: ", string) 

# creating substring from beginning

# define upto what index substring is needed 

start = string[:2] 

end = string[3:] 


print ("Resultant substring from start:", start) 

print ("Resultant substring from end:", end)



FREE Data Science With Python Course

Start Learning Data Science with Python for FREEStart Learning
FREE Data Science With Python Course

2. Create a substring by taking characters from a particular gap (step)

# Initialise string 

string = 'substring in python'

print ("Initial String: ", string) 

# create substring by taking element after certain position gap and define length upto which substring is required 

alt = string[::2] 

gap = string[::3] 

# result 

print ("Resultant substring from start:", alt) 

print ("Resultant substring from end:", gap)



3. Create a substring while considering string from the middle with some step gap between characters

# Initialise string 

string = 'substring in python'

print ("Initial string: ", string) 

# create substring by taking element after certain step gap in a defined length 

astring = string[2:11:2] 

# result 

print ("Resultant substring:", astring)



Looking forward to making a move to the programming field? Take up the Python Training Course and begin your career as a professional Python programmer

We have reached the end of the article on 'substring in python'. All the examples given above form an idea of how slicing works and how it helps create substrings of various types in python also check out our next tutorial on Queue in Python And if you wish to master python in and out, you can enroll in our Python Certification Course. Keep learning!

About the Author

Ravikiran A SRavikiran A S

Ravikiran A S works with Simplilearn as a Research Analyst. He an enthusiastic geek always in the hunt to learn the latest technologies. He is proficient with Java Programming Language, Big Data, and powerful Big Data Frameworks like Apache Hadoop and Apache Spark.

View More
  • Disclaimer
  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.
  • *According to Simplilearn survey conducted and subject to terms & conditions with Ernst & Young LLP (EY) as Process Advisors