按字符和按行将 txt 文件分成列表列表

Breaking txt file into list of lists by character and by row

我只是在学习编码,我正在尝试获取一个输入 txt 文件并分成一个列表(按行),其中每一行的字符都是该列表的元素。例如,如果文件是:

abcde
fghij
klmno

我想创建

[['a','b','c','d','e'], ['f','g','h','i','j'],['k','l','m','n','o']]

我试过了,但结果不是我想要的。

file = open('alpha.txt', 'r')
lst = []
for line in file:
    lst.append(line.rstrip().split(','))
print(lst)
[['abcde', 'fghij', 'klmno']]

我也试过这个,比较接近,但是不知道怎么把两个代码结合起来:

file = open('alpha.txt', 'r')
lst = []
for line in file:
    for c in line:
        lst.append(c)
print(lst)
['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o']

我尝试将 rstrip 添加到 lst.append 中,但没有成功(或者我没有正确添加)。抱歉 - 这里完全是新手!

我应该提一下,我不想包含换行符。非常感谢任何帮助!

如果您想将字符串拆分成图表,您可以使用 list(s)(其中 s = 'asdf'):

file = open('alpha.txt', 'r')
lst = []
for line in file:
    lst.append(list(line.strip()))

print(lst)

您正在将每个条目附加到原始列表中。您想要为输入中的每一行创建一个新列表,附加到该列表,然后将该列表附加到您的主列表。例如,

file = open('alpha.txt', 'r')
lst = []
for line in file:
    newLst = []
    for c in line:
        newLst.append(c)
    lst.append(newLst)
print(lst)

这个很简单。您必须使用 list() 构造函数将字符串转换为相应的字符。

with open('alpha.txt', 'r') as file:
    print([list(line)[:-1] for line in file.readlines()])

with open 构造只是一个惯用语,因此您不必像关闭文件那样对文件进行所有处理,而您忘记了)

使用嵌套列表理解。外层循环遍历文件中的行,内层循环遍历每行字符串中的字符。

with open('alpha.txt') as f:
    out = [[char for char in line.strip()] for line in f]

req = [['a','b','c','d','e'], ['f','g','h','i','j'],['k','l','m','n','o']]

print(out == req)

打印

True