2016-12-05 80 views
0

我刚刚学习编码,并试图获取输入txt文件并按列排序(其中每行的字符都是该列表的元素)。例如,如果该文件是:按字符和行将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但事与愿违工作(或者我没有做好)。对不起 - 在这里完成新手!

我应该提到我不希望包含换行符。任何帮助深表感谢!

+0

谢谢大家,这是一个很大的帮助。我还没有“开放”的知识,而且Dekel的回答似乎与我的学习方式一致。非常感激! – user7250011

回答

0

如果你想将字符串分割到它的图表,你可以只使用list(s)(其中s = 'asdf'):

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

print(lst) 
0

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

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

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

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

(该with open结构仅仅是一个成语,所以你不必做所有的处理与像关闭它的文件,你忘了做)

0

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

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) 

打印