Saturday, January 11, 2025
Google search engine
HomeLanguagesPython program to find the occurrence of substring in the string

Python program to find the occurrence of substring in the string

Given a list of words, extract all the indices where those words occur in the string.

Input : test_str = ‘neveropen is best forneveropen and cs’, test_list = [“best”, “neveropen”] 
Output : [2, 4] 
Explanation : best andneveropen occur at 2nd and 4th index respectively.

Input : test_str = ‘neveropen is best forneveropen and cs’, test_list = [“best”, “neveropen”, “is”] 
Output : [1, 2, 4] 
Explanation : is, best andneveropen occur at 1st, 2nd and 4th index respectively. 
 

Method #1 : Using list comprehension + split() + index()

In this, we perform the task of getting words from sentences using split(), and then match words from the string list to extracted strings using index().

Python3




# Python3 code to demonstrate working of
# Word occurrence positions in String
# Using list comprehension + split() + index()
 
# initializing string
test_str = 'neveropen is best forneveropen and cs'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing list
test_list = ["best", "neveropen", "cs"]
 
# using index() to get indices,
# list comprehension used to offer one liner
res = [test_str.split().index(ele)
       for ele in test_str.split() if ele in test_list]
         
# printing result
print("The indices list : " + str(res))


Output

The original string is :neveropen is best forneveropen and cs
The indices list : [2, 4, 6]

Time Complexity: O(n)

Auxiliary Space: O(n)

Method #2 : Using list comprehension + enumerate() + split()

This is yet another way in which this task can be performed. In this task of getting indices is done using enumerate().

Python3




# Python3 code to demonstrate working of
# Word occurrence positions in String
# Using list comprehension + enumerate() + split()
 
# initializing string
test_str = 'neveropen is best forneveropen and cs'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing list
test_list = ["best", "neveropen", "cs"]
 
# using enumerate() to get indices,
# list comprehension used to offer one liner
res = [idx for idx, ele in enumerate(test_str.split()) if ele in test_list]
         
# printing result
print("The indices list : " + str(res))


Output

The original string is :neveropen is best forneveropen and cs
The indices list : [2, 4, 6]

Time Complexity: O(n)

Auxiliary Space: O(n)

Method 3: The idea is to use a simple for loop to iterate through each word in the string and check if it is present in the given list of words

Steps:

  1. Initialize a string test_str with some sample text.
  2. Create a list test_list of words whose positions we want to find in the string.
  3. Create an empty list res to store the positions of the words in the string.
  4. Use the split() method to split the string into a list of words, so that we can iterate over each word.
  5. Use a for loop to iterate through each word in the string, along with its index.
  6. Check if the current word is present in the test_list using the in operator.
  7. If the word is present in the list, append its index to the res list.
  8. Print the final list of indices.
     

Python3




# initializing string
test_str = 'neveropen is best forneveropen and cs'
 
# initializing list
test_list = ["best", "neveropen", "cs"]
 
# initializing an empty list to store the indices
res = []
 
# iterating through each word in the string
for idx, word in enumerate(test_str.split()):
 
    # checking if the word is in the given list
    if word in test_list:
 
        # appending the index of the
        # word to the result list
        res.append(idx)
 
# printing the result list
print("The indices list : " + str(res))


Output

The indices list : [2, 4, 6]

Time Complexity: O(n), where n is the number of words in the string.

Auxiliary Space: O(k), where k is the number of occurrences of the words in the given list in the string.

Dominic Rubhabha-Wardslaus
Dominic Rubhabha-Wardslaushttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Recent Comments