0

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

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

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

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

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

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

4

1 回答 1

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。它覆盖了内置类型。

于 2013-09-15T00:58:14.313 回答