2016-12-05 12 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']] 

私はまた近いである、これを試してみましたが、私は2つのコードを結合する方法がわからない:

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'] 

私はlst.appendrstripを追加しようとしましたが、それはしませんでした仕事(または私はそれを正しくしなかった)。申し訳ありません - 完全な初心者ここ!

改行文字を含めたくないということを言及する必要があります。どんな助けでも大歓迎です!

+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) 

プリント

関連する問題