抓住字符串中找到的列表中的第一个单词。 (Python)

时间:2013-09-15 00:55:51

标签: python string list get word

所以,我有一个像这样的单词列表:

activationWords = ['cactus', 'cacti', 'rofl']

我想找到这些单词中的任何一个并返回出现在随机字符串中的任何单词的第一个单词。我将使用此字符串作为示例:

str = "Wow, rofl I found a cactus in a cacti pile."

正如您在上面的示例字符串中看到的那样,列表中单词的第一个实例是“rofl”。我希望能够检测到并将该单词返回到我可以自行决定使用的字符串中。我该怎么做?

请记住,该字符串只是一个例子。每次我运行它时都会使用不同的字符串。

1 个答案:

答案 0 :(得分:3)

您可以在此处使用str.find()

>>> activationWords = ['cactus', 'cacti', 'rofl']
>>> s = "Wow, rofl I found a cactus in a cacti pile."
>>> temp = [(s.find(i), i) for i in activationWords if i in s]
>>> print temp
[(20, 'cactus'), (32, 'cacti'), (5, 'rofl')]
>>> print min(temp)[1]
rofl

str.find()查找字符串在另一个字符串中的位置。它返回第一个字母的索引。

[(s.find(i), i) for i in activationWords]是一个列表推导,它返回一个元组列表,第一项是str.find()的结果,第二项是单词。

然后我们在这里使用min()获取最低数字,并使用[1]获取该字数。

请注意,您不应将字符串命名为str。它会覆盖内置类型。