Python 如何正确地将文件中的单词转换为元组或列表
程序会打印,但它会打印我文件中的内容,确切地说是如何编写的Python 如何正确地将文件中的单词转换为元组或列表,python,Python,程序会打印,但它会打印我文件中的内容,确切地说是如何编写的 import random def getWords(filename): openFile = open(filename, 'r') readFile = openFile.read() listWords = [] listWords = [readFile] tupleList = tuple(listWords) return tupleList
import random
def getWords(filename):
openFile = open(filename, 'r')
readFile = openFile.read()
listWords = []
listWords = [readFile]
tupleList = tuple(listWords)
return tupleList
nouns = "nouns.txt"
verbs = "verbs.txt"
prepo = "prepos.txt"
articles = "articles.txt"
prepositions = getWords(prepo)
nouns = getWords(nouns)
verbs = getWords(verbs)
articles = getWords(articles)
def sentence():
return nounPhrase() + " " + verbPhrase()
def nounPhrase():
return random.choice(articles) + " " + random.choice(nouns)
def verbPhrase():
return random.choice(verbs) + " " + nounPhrase() + " " + \
prepositionalPhrase()
def prepositionalPhrase():
return random.choice(prepositions) + " " + nounPhrase()
def main():
number = int(input("Enter the number of sentences: "))
for count in range(number):
print(sentence())
main()
我不完全确定如何将文件中的一组单词转换为元组或列表,以便以后用作随机单词选择
一个示例输出是:
A.
布莱克
比利
约翰经营一家公司
布莱克
比利
上面的约翰
围绕
背后
布莱克
比利
厕所
A.
布莱克
比利
约翰经营一家公司
布莱克
比利
上面的约翰
围绕
背后
布莱克
比利
约翰
而不是期望的输出是:
(只有一个被输入[随机选择]的单词进入输出)
布莱克跑在前面
约翰跑在后面
(在本例中,连贯性和语法不是问题)getWords函数需要的是在读取文件后,用换行符将其拆分。我假设你的文件格式是
noun1
noun2
noun3
etc
所以你的函数应该是这样的
def getWords(文件名):
openFile=open(文件名'r')
readFile=openFile.read().split('\n')
listWords=[]
listWords=[readFile]
元组列表=元组(listWords)
返回元组列表
让代码更干净的建议:
def getWords(文件名):
openFile=open(文件名'r')
返回openFile.read().split('\n')#split()自动返回一个列表
您能否从其中一个文件中粘贴一个示例,例如nowns.txt
的前几行,这样我们就知道输入格式了?请重复并从。“演示如何解决此编码问题”不是堆栈溢出问题。我们希望您做出诚实的尝试,然后就您的算法或技术提出具体问题。堆栈溢出不是为了替换现有的文档和教程。它取决于文件,有些文件只有非常少的单词(最少1个),例如名词只有单词run,像名词这样的文件有:blake,john,billy。(对于这一个,输出会一直打印逗号)如果您指定您的输入、所需的输出,并显示您的编码尝试(而不是辅助函数),我们将能够提供帮助。您可以在getWords函数中尝试return readFile.split()
。