我在Python 2.7中编写了一个代码,我在其中定义了超过一百万个字符串的列表。这是我的简单代码,用于查找包含关键字的字符串:
for word in wordlist:
if keyword in word:
newlist.append(word)
是否有更好/更快的方法来实现这一目标?
答案 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]