我已经定义了一个函数来检查一个或多个单词是否在列表中,并且它工作正常,但现在我正在试图弄清楚我应该如何更改我的代码以便得到列表< / 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)
唯一令人烦恼的是,布尔语出现在英文中,哦,好吧!
答案 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
。True
或False
附加到该列表中,用于您正在考虑的每个字词。这应该不会太困难,因为您已经在计算文件中是否有单词。