Programa de Python para encontrar índices de inicio y final de todas las palabras en una string

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))
Producción

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

Deja una respuesta

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