2016-12-05 81 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) 

打印