'in <string>'需要将字符串作为左操作数,而不是列表

时间:2019-10-03 12:00:09

标签: python

我正在学习开发一个应用程序,该应用程序可以从.txt文件中输入单词,并检查单词是否存在于字典文件中。

运行代码时,出现类型错误。请帮我解决我在这里做错的事情。

input.txt文件包含段落句子。 dictionary.txt文件逐行列出了单词列表。

def word_check(check_file, input_file):
    try:
        open_file = open(check_file, "r")
        read_file = open_file.readlines()

        open_file_2 = open(input_file, "r")
        read_file_2 = open_file_2.readlines()

        for input_word in read_file_2:
            input_word = input_word.strip("!@#$%^&*()_+{}:?><'-=,./;][")
            each_input_word = input_word.lower().split()
            list_each_word = each_input_word
            count = 0

            for item in read_file:
                line = item
                for word in line:
                    check_word = word.lower()
                    if list_each_word in check_word:
                        count += 1
                print(count)

    except FileExistsError:
        print("File not exist")


word_check("list.txt", "input.txt")

如果dictionary.txt文件中存在单词,我希望对单词进行计数。

3 个答案:

答案 0 :(得分:1)

您通过执行list_each_word来生成input_word.lower().split()

这会生成一个单词列表。

然后,您遍历单词列表并执行if list_each_word in check_word:

在这里,check_word是一个字符串,而list_each_word是一个列表。您应该切换这些位置,因为您要检查字符串是否在列表中

应该是:

if check_word in list_each_word :

答案 1 :(得分:0)

如果您要计算check_wordlist_each_word的出现次数,可以替换以下两行:

if list_each_word in check_word:
    count += 1

与此:

count += list_each_word.count(check_word)

这将发现check_wordlist_each_word发生了多少次。


答案 2 :(得分:0)

我想通了。

    def spell_check(dictionary, document):
    try:
    open_document = open(document, "r")
    input_sentence = open_document.readline()
    input_words = input_sentence.lower().split()
    print(input_words)

    open_dictionary = open(dictionary, "r")
    check_sentence = open_dictionary.read()
    check_word = check_sentence.lower()

    for word in input_words:
        word = word.strip("!@#$%^&*()_+{}:?><,./;[]=-")
        if word not in check_word:
            print(f"Mispelled words are: {word}")

    except FileExistsError:
    print("File does not exist")


    spell_check("dictionary.txt", "document.txt")