如何在python3中实现精确的关键字搜索功能

2024-04-20 07:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个程序,生成随机字符串,将它们放入一个列表中,并通过for循环运行这些字符串,该循环应该搜索一个文件,以检查它们是否是真单词。循环如下:

wordvalidator = open("englishwords.txt", "r")
for line in wordvalidator:
    for item in stringslist:
        if item in line:
            words.append(item)

““英语单词.txt“作为包含大量单词的文件,意味着验证随机字符串作为实际单词,“stringslist”是带有字符串的列表,“words”是已验证为实际单词的字符串所属的列表。问题是,如果有一个字符串,比如说“ird”,它不是一个真正的单词,它会搜索所有的单词并将其与“bird”匹配起来。这是一个问题,因为我现在不知道如何真正验证这些字符串是否是单词。我不知道该怎么办,除了可能用“if item is line”替换“if item in line”,这将修改条件,使其仅在字符串与文档中的行完全对应时才为true,但是我不知道“is”是否是实际的python术语,我也不知道我还可以使用什么类似的术语。任何帮助都将不胜感激。谢谢。你知道吗


Tags: 文件字符串intxt列表forifis
1条回答
网友
1楼 · 发布于 2024-04-20 07:24:48
with open("englishwords.txt") as wordvalidator:
    validset = set(map(str.strip, wordvalidator))

words = [word for word in stringslist if word in validset]

基本上,使用set是因为它执行快速成员身份测试(if word in validset),而不要使用in检查字符串是否相等,因为它执行您不希望的子字符串搜索。你知道吗

相关问题 更多 >