#定义变量' load_words()'。
def load_words():
#打开并分配一个单词'来自外部" txt"的文件文件。
words_file = open("words.txt", "r")
#Assigns' words'作为外部" txt"中编码字行的压缩函数。文件。
words = [line.strip() for line in words_file]
您是否可以使用元组执行相同的操作,而无需直接在程序中访问数据?
由于
答案 0 :(得分:1)
如果我理解正确,是的。
从您的问题来看,听起来您想要读取带有N
行的文件,并从该文件生成一个N元组的字符串,其中元组的每个元素都是文件中的一行。
所以,你现在正在做的是读取一个如下所示的文件:
Hello
World
!
并生成字符串列表["Hello", "World", "!"]
我认为你想要的是3元组:("Hello", "World", "!")
您可以执行以下操作:
with open("words.txt") as file:
t = tuple(line.strip() for line in file)
将导致t
包含" words.txt"的内容的N元组。
这里发生的是表达式line.strip() for line in file
是一个生成器,被传递给元组构造函数。
生成器是可迭代的,并且当给定可迭代时,元组构造函数迭代迭代的所有元素并将它们填充到元组中。
快速说明:您不应该或不需要这样做。 文件输入超出了您作为程序员的直接控制范围,因此应视为可变长度。 元组对于表示固定长度的构造非常有用,而不是像文件那样可变的东西。 你为什么要这样做?元组为你服务的目的是什么目的呢?
答案 1 :(得分:0)
猜测将它放入元组而不是列表是有意义的,因为一旦它出现,你可能不会对它进行任何更改,并且使用in
访问元组会更快。
WORDLIST = "words.txt"
def loadWords():
with open(WORDLIST, 'r') as inFile:
wordTuple = tuple(word.lower() for word in inFile.read().split())
return wordTuple
MYWORDS = loadWords()