在列表中搜索包含特定单词的字符串

时间:2013-12-07 15:36:01

标签: python python-2.7

我在Python 2.7中编写了一个代码,我在其中定义了超过一百万个字符串的列表。这是我的简单代码,用于查找包含关键字的字符串:

for word in wordlist:
   if keyword in word:
      newlist.append(word)

是否有更好/更快的方法来实现这一目标?

2 个答案:

答案 0 :(得分:2)

你可以使用这样的理解

newlist = [word for word in wordlist if keyword in word]

答案 1 :(得分:1)

你经常这样做吗?你只匹配确切的单词吗?建立和保持索引可能是值得的:

from collections import defaultdict

class Index:
    def __init__(self, stringlist):
        self.index = defaultdict(list)
        for string in stringlist:
            for word in string.split():
                self.index[word].append(string)

    def strings_containing(self, word):
        return self.index[word]