Programa de Python para encontrar la aparición de substring en la string

Dada una lista de palabras, extraiga todos los índices donde aparecen esas palabras en la string.

Entrada : test_str = ‘geeksforgeeks es lo mejor para geeks y cs’, test_list = [“mejor”, “geeks”] 
Salida : [2, 4] 
Explicación : mejor y geeks se encuentran en el segundo y cuarto índice respectivamente.

Entrada : test_str = ‘geeksforgeeks es mejor para geeks y cs’, test_list = [“mejor”, “geeks”, “es”] 
Salida : [1, 2, 4] 
Explicación : es, mejor y geeks ocurren en 1st, 2nd y cuarto índice respectivamente. 
 

Método n. ° 1: usar la comprensión de listas + dividir() + index()

En esto, realizamos la tarea de obtener palabras de la oración usando split(), y luego hacemos coincidir las palabras de la lista de strings con las strings extraídas usando index().

Python3

# Python3 code to demonstrate working of 
# Word occurrence positions in String
# Using list comprehension + split() + index()
  
# initializing string
test_str = 'geeksforgeeks is best for geeks and cs'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing list 
test_list = ["best", "geeks", "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))
Producción

The original string is : geeksforgeeks is best for geeks and cs
The indices list : [2, 4, 6]

Método n.° 2: usar la comprensión de listas + enumerar() + dividir()

Esta es otra forma más en la que se puede realizar esta tarea. En esta tarea de obtener índices se hace usando enumerate().

Python3

# Python3 code to demonstrate working of 
# Word occurrence positions in String
# Using list comprehension + enumerate() + split()
  
# initializing string
test_str = 'geeksforgeeks is best for geeks and cs'
  
# printing original string
print("The original string is : " + str(test_str))
  
# initializing list 
test_list = ["best", "geeks", "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))
Producción

The original string is : geeksforgeeks is best for geeks and cs
The indices list : [2, 4, 6]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *