Python: índices de inicio y finalización de palabras de la lista en String

Dada una String, nuestra tarea es escribir un programa en Python para extraer el índice de inicio y fin de todos los elementos de palabras de otra lista de una string.

Entrada: test_str = «gfg es mejor para todos los geeks de CS y buscadores de trabajo de ingeniería», check_list = [«geeks», «ingeniería», «mejor», «gfg»]

Salida: {‘geeks’: [23, 27], ‘ingeniería’: [33, 43], ‘mejor’: [7, 10], ‘gfg’: [0, 2]}

Explicación: «geeks» comienza desde el número de índice 23 hasta el 27, de ahí el resultado.

Entrada: test_str = «gfg es mejor para todos los geeks de CS y buscadores de trabajo de ingeniería», check_list = [«geeks», «gfg»]

Salida: {‘geeks’: [23, 27], ‘gfg’: [0, 2]}

Explicación: «geeks» comienza desde el número de índice 23 hasta el 27, de ahí el resultado.

Método #1: Usar loop + index() + len()

En esto, el bucle se usa para obtener cada elemento de la lista. index() obtiene el índice inicial y len() obtiene el último índice de todos los elementos de la lista en la string.

Python3

# Python3 code to demonstrate working of
# Start and End Indices of words from list in String
# Using loop + index() + len()
 
# initializing string
test_str = "gfg is best for all CS geeks and engineering job seekers"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing check_list
check_list = ["geeks", "engineering", "best", "gfg"]
 
res = dict()
for ele in check_list :
    if ele in test_str:
         
        # getting front index
        strt = test_str.index(ele)
         
        # getting ending index
        res[ele] = [strt, strt + len(ele) - 1]
 
# printing result
print("Required extracted indices  : " + str(res))

Producción:

La string original es: gfg es mejor para todos los geeks de CS y buscadores de trabajo de ingeniería

Índices extraídos requeridos: {‘geeks’: [23, 27], ‘engineering’: [33, 43], ‘best’: [7, 10], ‘gfg’: [0, 2]}

Método #2: Usando la comprensión del diccionario + len() + index()

En esto, realizamos tareas similares a la función anterior, pero la construcción del diccionario de resultados se realiza usando taquigrafía usando comprensión de diccionario. 

Python3

# Python3 code to demonstrate working of
# Start and End Indices of words from list in String
# Using dictionary comprehension + len() + index()
 
# initializing string
test_str = "gfg is best for all CS geeks and engineering job seekers"
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing check_list
check_list = ["geeks", "engineering", "best", "gfg"]
 
# Dictionary comprehension to be used as shorthand for
# forming result Dictionary
res = {key: [test_str.index(key), test_str.index(key) + len(key) - 1]
       for key in check_list if key in test_str}
 
# printing result
print("Required extracted indices  : " + str(res))

Producción:

La string original es: gfg es mejor para todos los geeks de CS y buscadores de trabajo de ingeniería

Índices extraídos requeridos: {‘geeks’: [23, 27], ‘engineering’: [33, 43], ‘best’: [7, 10], ‘gfg’: [0, 2]}

La complejidad de tiempo y espacio para todos los métodos es la misma:

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(n)

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 *