0

我正在编写一个程序来逐行从程序中的文件中查找关键字。下面复制的一段代码用于将不区分大小写的关键字(关键字在列表 L 中)添加到列表中,可见,以便仅生成唯一的关键字,并添加到我拥有的关键字的计数中。代码如下:

    for words in line:
        if (words.upper() or words.lower() in L) and (not in seen): # this means a keyword was found
            seen.append(words) # add keyword to the seen list to only find unique keywords
            count += 1 # add to count of keywords in this line

但是,当我尝试运行它时,我的 if 语句会出现语法错误,并突出显示“未见”中的“在”。我的 if 语句有什么问题?

谢谢。

4

1 回答 1

2

您没有指定什么是not in seen. 您的情况应该是X not in Y. 此外,您的第一个表达式并没有按照您的想法执行:words.upper() or words.lower() in L检查是否words.upper()不是空字符串,或者是否words.lower()L.

你可能想要这个:

for words in line:
    if (words.upper() in L or words.lower() in L) and (words.upper() not in seen and words.lower() not in seen):
        seen.append(words)
        count +=1

如果您不关心存储在 seen 中的单词的大小写,您可以将所有单词转换为一种大小写(大写或小写),从而使您的代码更简单:

for words in line:
    words = words.lower()
    if words in L and words not in seen:
        seen.append(words)
        count +=1
于 2014-11-23T14:39:20.940 回答