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()