检查列表中是否存在多个单词并返回布尔值的返回列表

时间:2012-06-15 09:27:20

标签: python list boolean

我已经定义了一个函数来检查一个或多个单词是否在列表中,并且它工作正常,但现在我正在试图弄清楚我应该如何更改我的代码以便得到列表< / strong>的布尔值取决于单词是否在列表中。这是我一直在努力的两个独立的功能:

这是一个没有布尔值的人,它可以完美地打印单词以及它们是否出现在文本中,但是该函数不输出布尔值(它只是打印,这有点凌乱,我知道)

def isword(file):
    wordlist=input("Which word(s) would you like to check for in the text? ")
    wordlist=wordlist()
    file=chopup(file) ##This is another function of mine that splits a string(file) into   a list
    for n in range(0,len(wordlist)):
        word=wordlist[n]
        n+=1
        word=word.lower() ##so case doesn't matter when the person enters the word(s)
        if word in file:
            print(word, ":TRUE")
            for i in range(0,len(file)):
                if file[i]==word:
                    print(i)
        else:
            print(word," :FALSE")

这个输出一个布尔值,但只输出一个字。我想知道如何组合它们以便我得到一个布尔值列表作为输出,没有打印

def isword(file):
    a=True
    wordlist=input("Which word(s) would you like to check for in the text? ")
    wordlist=wordlist()
    file=chopup(file) ##This is another function of mine that splits a string(file) into a list
    for n in range(0,len(wordlist)):
        word=wordlist[n]
        n+=1
        word=word.lower()
        if word in file:
            a=a
        else:
            a=False
    return(a)

我最终得到了这个,它运作得很好(我的变量/函数名在项目中实际上是法语,因为这是在法国大学的家庭作业)

def presmot(fichier):
    result=[]
    listemots=input("Entrez le/les mots dont vous voulez vérifier la présence : ")
    listemots=listemots.split()
    fichier=decoupage(fichier)
    for n in range(0,len(listemots)):
        mot=listemots[n]
        mot=mot.lower()
        def testemot(mot):
            a=True
            if mot in fichier:
                a=a
            else:
                a=False
            return(a)
    result=[(mot,testemot(mot)) for mot in listemots] 
    return(result)

唯一令人烦恼的是,布尔语出现在英文中,哦,好吧!

2 个答案:

答案 0 :(得分:0)

获取输入时存在错误。使用raw_input而不是input。

def isword(file):
    wordlist= raw_input("Which word(s) would you like to check for in the text? ").split()
    file=chopup(file)
    return [word.lower() in file for word in wordlist]

仅供参考,您不需要n+=1。 for循环自动递增n。

答案 1 :(得分:0)

我们来看看:

  • 你现在正在返回一个布尔值,但这需要是一个列表。因此,您应该在功能开头的某处result = []和最后的return result
  • 剩下要做的就是将TrueFalse附加到该列表中,用于您正在考虑的每个字词。这应该不会太困难,因为您已经在计算文件中是否有单词。