Dada una string, devuelve todos los índices iniciales y finales de cada palabra.
Ejemplos:
Entrada : test_str = ‘Geekforgeeks is Best’
Salida : [(1, 12), (16, 17), (19, 22)]
Explicación : «Best» Comienza en el índice 19 y termina en el índice 22.Entrada : test_str = ‘Geekforgeeks is Best’
Salida : [(1, 12), (17, 18), (20, 23)]
Explicación : «Best» Comienza en el índice 20 y termina en el índice 23.
Método: Usar comprensión de lista + expresiones regulares + finditer()
En esto, extraemos todas las palabras usando finditer() y regex, para obtener el índice inicial y final, usamos start() y end() y encapsulamos usando la comprensión de listas en forma de lista de tuplas.
Python3
# Python3 code to demonstrate working of # Word Ranges in String # Using list comprehension + regex + finditer() import re # initializing string test_str = ' Geekforgeeks is Best for geeks' # printing original string print("The original string is : " + str(test_str)) # regex to get words, loop to get each start and end index res = [(ele.start(), ele.end() - 1) for ele in re.finditer(r'\S+', test_str)] # printing result print("Word Ranges are : " + str(res))
The original string is : Geekforgeeks is Best for geeks Word Ranges are : [(1, 12), (16, 17), (19, 22), (27, 29), (32, 36)]
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