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

Python 在列表中搜索包含特定单词的字符串,python,python-2.7,Python,Python 2.7,我正在用Python2.7编写一段代码,其中定义了超过一百万个字符串的列表。以下是查找包含关键字的字符串的简单代码: for word in wordlist: if keyword in word: newlist.append(word) 有没有更好/更快的方法来完成这个任务?你可以这样使用理解 newlist = [word for word in wordlist if keyword in word] 你可以这样理解 newlist = [word for wor

我正在用Python2.7编写一段代码,其中定义了超过一百万个字符串的列表。以下是查找包含关键字的字符串的简单代码:

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

有没有更好/更快的方法来完成这个任务?

你可以这样使用理解

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

你可以这样理解

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

你可以这样理解

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

你可以这样理解

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

你会经常这样做吗?你只匹配准确的单词吗?可能值得建立和保存一个索引:

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]

你会经常这样做吗?你只匹配准确的单词吗?可能值得建立和保存一个索引:

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]

你会经常这样做吗?你只匹配准确的单词吗?可能值得建立和保存一个索引:

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]

你会经常这样做吗?你只匹配准确的单词吗?可能值得建立和保存一个索引:

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]

更好的方式,但不是更快。更好的方式,但不是更快。更好的方式,但不是更快。更好的方式,但不是更快。是的,我只匹配准确的单词。高效的方式,谢谢你的帮助。是的,我只匹配准确的单词。高效的方式,谢谢你的帮助。是的,我只匹配准确的单词。高效的方式,谢谢你的帮助。是的,我只匹配准确的单词。高效的方式,谢谢你的帮助。