Open In App

Python – Find Index containing String in List

Last Updated : 28 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given a list, the task is to write a Python Program to find the Index containing String.

Example:

Input: [‘sravan’, 98, ‘harsha’, ‘jyothika’, ‘deepika’, 78, 90, ‘ramya’]

Output: 0 2 3 4 7

Explanation: Index 0 2 3 4 7 contains only string.

Method 1: Using type() operator in for loop

By using type() operator we can get the string elements indexes from the list, string elements will come under str() type, so we iterate through the entire list with for loop and return the index which is of type string.

Python3




# create a list of names and marks
list1 = ['sravan', 98, 'harsha', 'jyothika',
         'deepika', 78, 90, 'ramya']
 
# display
list1
 
# iterate through list of elements
for i in list1:
   
    # check for type is str
    if(type(i) is str):
       
        # display index
        print(list1.index(i))


Output

0
2
3
4
7

Time Complexity: O(n)
Auxiliary Space: O(1)

Method 2: Using type() operator in List Comprehension

By using list comprehension we can get indices of string elements.

Syntax: [list.index(iterator) for iterator in list if(type(iterator) is str)]

Python3




# create a list of names and marks
list1 = ['sravan', 98, 'harsha', 'jyothika',
         'deepika', 78, 90, 'ramya']
 
# display
list1
 
# list comprehension
print([list1.index(i) for i in list1 if(type(i) is str)])
 
# list comprehension display strings
print([i for i in list1 if(type(i) is str)])


Time Complexity: O(n)

Auxiliary Space: O(n)

Method 3: Using isinstance() function

Python3




# create a list of names and marks
list1 = ['sravan', 98, 'harsha', 'jyothika',
        'deepika', 78, 90, 'ramya']
 
# display
print(list1)
 
list2=[]
 
# iterate through list of elements
for i in list1:
    # check for type is str
    if(isinstance(i,str)):
        # display index
        list2.append(list1.index(i))
print(list2)


Output

['sravan', 98, 'harsha', 'jyothika', 'deepika', 78, 90, 'ramya']
[0, 2, 3, 4, 7]

The time and space complexity of all methods are:

Time Complexity: O(n)

Space Complexity: O(n)

Method 4: Using enumerate() function

Python3




# create a list of names and marks
list1 = ['sravan', 98, 'harsha', 'jyothika',
         'deepika', 78, 90, 'ramya']
 
# display
print(list1)
obj = enumerate(list1)
 
for i in obj:
    if(type(i[1]) is str):
        print(i[0])


Output

['sravan', 98, 'harsha', 'jyothika', 'deepika', 78, 90, 'ramya']
0
2
3
4
7

Method 5: using isinstance() function 

Python3




# create a list of names and marks
list1 = ['sravan', 98, 'harsha', 'jyothika',
        'deepika', 78, 90, 'ramya']
print(list1)
# iterate through list of elements
for i in list1:
 
    # check for type is str
    if(isinstance(i, str)):
     
        # display index
        print(list1.index(i))


Output

['sravan', 98, 'harsha', 'jyothika', 'deepika', 78, 90, 'ramya']
0
2
3
4
7

Time complexity:O(n)

Auxiliary Space:O(n)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads