Open In App

Python – Get Nth word in given String

Last Updated : 23 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with data, we can have a problem in which we need to get the Nth word of a String. This kind of problem has many application in school and day-day programming. Let’s discuss certain ways in which this problem can be solved. 

Method #1 : Using loop This is one way in which this problem can be solved. In this, we run a loop and check for spaces. The Nth word is when there is N-1th space. We return that word. 

Python3




# Python3 code to demonstrate working of
# Get Nth word in String
# using loop
 
# initializing string
test_str = "GFG is for Geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# initializing N
N = 3
 
# Get Nth word in String
# using loop
count = 0
res = ""
for ele in test_str:
    if ele == ' ':
        count = count + 1
        if count == N:
            break
        res = ""
    else :
        res = res + ele
 
# printing result
print("The Nth word in String : " + res)


Output : 

The original string is : GFG is for Geeks
The Nth word in String : for

  Method #2 : Using split() This is a shorthand with the help of which this problem can be solved. In this, we split the string into a list and then return the Nth occurring element. 

Python3




# Python3 code to demonstrate working of
# Get Nth word in String
# using split()
 
# initializing string
test_str = "GFG is for Geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# initializing N
N = 3
 
# Get Nth word in String
# using split()
res = test_str.split(' ')[N-1]
 
# printing result
print("The Nth word in String : " + res)


Output : 

The original string is : GFG is for Geeks
The Nth word in String : for

Method #3 : Using re.findall()
This approach uses the re.findall() function from the re library. It searches for all non-whitespace substrings in the given string and returns them in a list. The Nth word can then be accessed by indexing the list.

Python3




import re
 
# initializing string
test_str = "GFG is for Geeks"
   
# printing original string
print("The original string is : " + test_str)
   
# initializing N
N = 3
   
# Get Nth word in String
# using re.findall()
res = re.findall(r'\S+', test_str)
 
# printing result
print("The Nth word in String : " + res[N-1])
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original string is : GFG is for Geeks
The Nth word in String : for

Time complexity is O(n) and Auxiliary Space is O(n).

Method 4 : using the string slicing method.

step-by-step approach 

  1. Initialize the string.
  2. Print the original string.
  3. Initialize the value of N.
  4. Find the starting and ending indices of the Nth word using the string slicing method.
  5. Extract the Nth word using the starting and ending indices.
  6. Print the Nth word.

Python3




# initializing string
test_str = "GFG is for Geeks"
 
# printing original string
print("The original string is : " + test_str)
 
# initializing N
N = 3
 
# Get Nth word in String
# using slicing
start = 0
end = len(test_str)
for i in range(N-1):
    start = test_str.find(" ", start) + 1
for i in range(start, len(test_str)):
    if test_str[i] == " ":
        end = i
        break
nth_word = test_str[start:end]
 
# printing result
print("The Nth word in String : " + nth_word)


Output

The original string is : GFG is for Geeks
The Nth word in String : for

Time Complexity: O(n), where n is the length of the given string.
Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads