将文件中的字符读入列表

Reading characters from file into list

我有一个程序的一部分,代码如下

file1 = [line.strip()for line in open(sometext.txt).readlines()] 
print ((file1)[0])

当代码被执行时,它给了我 txt 文件的全部内容,这是一个很长的句子, 我将如何阅读每个字母并将其放入列表中以分别为每个字符编制索引?我使用了 list() 函数,它似乎将整个文本文件放入列表而不是每个字符。

您可以使用 file.read() 而不是 file.readlines():

file1 = [char for char in open(sometext.txt).read()]

但是,您实际上并不需要列表理解;相反,你可以这样做:

file1 = list(open(sometext.txt).read())

此外,正如@furas 在他的评论中提到的,您不需要列表来建立索引。 str 也有一个名为 index 的方法,因此您可以说 file1 = open(sometext.txt).read() 并且仍然可以使用 file1.index()。请注意,str 也有一个 find 方法,如果未找到子字符串,该方法将 return -1,而不是引发 ValueError。

用一个read()就够了。加。如果你想存储没有 \n 和空格的列表,你可以使用:

char_list = [ch for ch in open('test.txt').read() if ch != '\n' if ch != ' ']

如果要保留 if 语句,可以删除它们。