Python 如何快速查找英语单词表中的单词?

Python 如何快速查找英语单词表中的单词?,python,string,search,Python,String,Search,我有单词“稍微”或“QQW”,我想在英语单词列表中找到它(它是否存在,在列表中)。 如果我有str的列表,那么 is_exists = s in english_list 如果我们有一个巨大的单词列表,这个方法会很慢。我认为需要某种数据结构或算法来加快速度和提高效率 那么我该怎么做,有什么建议吗?这里有一些很好的比较: 您需要的可能是一个集合。正如所建议的那样,创建一个集合而不是列表会更快。 对于“小”数据文件,列表似乎更快,但一旦文件变大,访问集就会比列表更快。 用这样的方法进行测试: f

我有单词“稍微”或“QQW”,我想在英语单词列表中找到它(它是否存在,在列表中)。 如果我有str的
列表
,那么

is_exists = s in english_list
如果我们有一个巨大的单词列表,这个方法会很慢。我认为需要某种数据结构或算法来加快速度和提高效率


那么我该怎么做,有什么建议吗?

这里有一些很好的比较:


您需要的可能是一个集合。

正如所建议的那样,创建一个
集合
而不是
列表
会更快。 对于“小”数据文件,
列表
似乎更快,但一旦文件变大,访问
就会比列表更快。
用这样的方法进行测试:

from timeit import default_timer as timer
import sys
try:
    lookfor = sys.argv[1]
    pass
except:
    print "Program requires an word to look for"
    sys.exit()
wordset = set()
wordlist = []
with open("your file name","r") as f:
    for i in f.readlines():
        wordset.update(i.split())
        for x in i.split():
            wordlist.append(x)
def testwords(word):
    start= timer()
    if word in wordset: print ("Yes word found")
    else: print ("No word not found")
    end= timer()
    print ("Wordset",str(len(wordset)))
    print (start,end,(end - start)*1000)
    start= timer()
    if word in wordlist: print ("Yes word found")
    else: print ("No word not found")
    end= timer()
    print ("Wordlist",str(len(wordset)))
    print (start,end,(end - start)*1000)

testwords(lookfor)

我在另一个话题中找到了答案。对不起,我没有先找到它

我需要使用
bisect
模块和函数
bisect\u left
。它可以在列表、排序列表中快速查找项目。
这个问题很快就被列入了大名单。

我很高兴听到你自己解决了问题。