首页 > 解决方案 > 使用 find() 返回最后一个字符位置而不是第一个字符位置

问题描述

我正在为一个应该像单词搜索一样工作的学校项目开发一个程序。我们需要在字符串中找到一个(或多个单词)并打印它在字符串中的位置。似乎很容易。这是一个例子:

yew = "hello"
myString = "alskdfjhelloadskjf"
print(myString.find(yew))

7正如预期的那样,这将打印出来。我的教授还希望我们能够找到落后的单词,这是我的代码示例,它也有效

myString = "alskdfjollehadskjf"
print(myString.find(yew[::-1]))

这也打印7,但是,我的教授希望程序打印单词中第一个字母的位置,所以在这种情况下,我希望它打印11。到目前为止,我发现解决此问题的唯一方法如下

print(myString.find(yew[::-1]) + len(yew) - 1) # prints 11

有没有我没有看到的更有效的方法来做到这一点?还是find()您认为更适合该计划的替代方案?谢谢!

编辑:有没有办法以更简洁的方式编写它*不一定更有效,因为我们可以看到它工作正常。抱歉没有澄清

标签: pythonpython-3.xfind

解决方案


我认为您的实施没有任何问题;实际上,这是我在看到您的解决方案之前想到的第一件事。如果你想找到一个单词中最后一个字符的位置,你可以在len(word) - 1. 看起来你做得很好!


推荐阅读