2017-01-08 5 views
1

この質問は、他の人たちと幾分同じですが、私はPythonにも新しいので、私が解釈しようとしているものとは異なります。Pythonで数値を個別にテキストファイルから分割する方法は?

は私がSAMPLE.TXTていたとします

123 
456 

321 
780 

両方が空白で区切られます。しかし、私は、彼らは次のようになりたいと思った:

>> goal = '123456' 
>> start = '456312' 

と私のスタートアップコードは、何らかの形で次のようになります。

になり
with open('input.txt') as f: 
    out = f.read().split() 
    print map(int, out) 

I '' は何異なっている
>> [123, 456, 456, 123] 

私は発揮しようとしています。

答えて

3

あなたができることの一つは、行毎にファイルをループで、ラインが空であるならば、そうでない場合は結果リストの最後の要素に行を追加し、結果リストに新しい文字列を開始します。

lst = [''] 

with open('input.txt', 'r') as file: 

    for line in file: 
     line = line.rstrip() 
     if len(line) == 0: 
      lst.append('') 
     else: 
      lst[-1] += line 

lst 
# ['123456', '321780'] 
+0

質問123456を出力するlst [0]を印刷すると、まだリストと見なされますか? – SovietSenpai

+0

'lst [0]'はリストの最初の要素を返します。この場合は文字列で、 'lst'は変更されません。 – Psidom

+0

しかし、彼らはまだlstのためにリストされていますか?私はまだ番号で条件を作ることはできますか? – SovietSenpai

-1

の\ n \ nにあります。

>>> inp = '123\n456\n\n321\n780\n' 
>>> [int(num.replace('\n', '')) for num in inp.split('\n\n')] 
[123456, 321780] 
+0

なぜ落選ですか?この答えは、他のものより効率的であるようです。 –

+0

(はい、これは良いアプローチだと思いました。) –

関連する問題