在python中找到单词结尾的索引

Pra*_*rag 11 python string indexing find

是否有一种很好的(呃)方法来查找字符串中单词的结束索引?

我的方法是这样的:

text = "fed up of seeing perfect fashion photographs"
word = "fashion"
wordEndIndex = text.index(word) + len(word) - 1
Run Code Online (Sandbox Code Playgroud)

小智 6

这取决于您是否真的知道结束索引。想必您实际上对之后的部分更感兴趣text?你在做这样的事情吗?

>>> text[wordEndIndex:]
'n photographs'
Run Code Online (Sandbox Code Playgroud)

如果您确实需要索引,那么执行您已经完成的操作,但将其包装在一个可以为不同的texts 和words调用的函数中,这样您就不必重复此代码。如果你给函数一个描述性的名字,那么它就简单易懂了。

另一方面,如果您对 的位更感兴趣text,那么甚至不必费心计算索引是什么:

>>> text.split(word)
['fed up of seeing perfect ', ' photographs']
Run Code Online (Sandbox Code Playgroud)

当然,如果这个词在文本中出现不止一次,这会变得更加复杂。在这种情况下,也许您可​​以定义一个不同的函数来在单词第一次出现时进行拆分,并且只返回之前和之后的组件,而无需返回任何数字索引。


Ant*_*ony 5

我无法评论这是否是更好的方法,但是您建议的替代方法是找到该单词之后的下一个空格并使用它来获取索引。

text = "fed up of seeing perfect fashion photographs"
word = "fashion"
temp = text.index(word)
wordEndIndex = temp + text[temp:].index(' ') - 1
Run Code Online (Sandbox Code Playgroud)

你的方法看起来更自然,也可能更快。