Python返回列表项字符串包含的内容

时间:2015-08-28 10:21:00

标签: python string list any

我有一个单词列表和一个像这样的字符串:

wordlist = ['fox', 'over', 'lazy']
paragraph = 'A quick brown fox jumps over the lazy fox.'

我想知道列表中的哪些单词出现在字符串中并返回它们。是否有一些相对聪明的方法来做到这一点?

例如,any(word in paragraph for word in wordlist)仅返回TrueFalse,但不会返回找到的实际字词。

2 个答案:

答案 0 :(得分:4)

在列表理解中使用您的测试:

""

这将words_in_paragraph = [word for word in wordlist if word in paragraph] 生成器的测试移到了最后。

演示:

any()

请注意,就像您的>>> wordlist = ['fox', 'over', 'lazy'] >>> paragraph = 'A quick brown fox jumps over the lazy fox.' >>> [word for word in wordlist if word in paragraph] ['fox', 'over', 'lazy'] >>> another_wordlist = ['over', 'foo', 'quick'] >>> [word for word in another_wordlist if word in paragraph] ['over', 'quick'] 测试一样,此部分字的工作也会匹配,当然:

any()

答案 1 :(得分:1)

您可以使用过滤器

included_words = filter(lambda word: word in paragraph, wordlist)

虽然在python3中,这会产生一个迭代器,所以如果你想要一个列表使用列表理解方法(或者如果你愿意,你可以在过滤结果上调用list),否则迭代器就可以了。

included_words = list(filter(lambda word: word in paragraph, wordlist))

OR

included_words = [word for word in wordlist if word in paragraph]