2017-04-24 13 views
-2

テキストファイルからパラレルリストの作成(各行の値はタブで区切られて):Pythonは、私は現在、テキストファイルを持っている

1935 32.1 
1940 30.5 
1945 24.4 
1950 23.0 
1955 19.1 
1960 15.6 
1965 12.4 
1970 9.7 
1975 8.9 
1980 7.2 

を、最終的に私は2つの並列リストを作成するようにしたい:

listX=[1935, 1940, 1945, 1950, 1955, 1960, 1965, 1970, 1975, 1980] 
listY=[32.1, 30.5, 24.4, 23.0, 19.1, 15.6, 12.4, 9.7, 8.9, 7.2] 

何らかの理由で、私はこれを空白にしています。これらの別々のリストを作成する最良の方法は何でしょうか?

+1

何を試しましたか? – Fallenreaper

+1

おそらく何千もの類似の質問があります。少なくとも、あなたはそのような質問を見つけて、そのアプローチを試してみて、それがうまくいかない場合は、あなたの試行がどのようにうまくいかなかったかを強調してください*。このような質問の鍵は、あなたが試したことと失敗したことを説明することです。これはコード作成サービスではありません。 –

答えて

0

あなたは、xとyはタプルであることと罰金であれば、あなたはzipを使用することができます。

import io 
with io.open('file.txt', encoding='utf-8') as f: 
    x, y = zip(* (l.split() for l in line)) 

それはどちらか、リストであるリストにタプルを変換する必要がある場合:

with io.open('file.txt', encoding='utf-8') as f: 
    x, y = map(list(zip(* (l.split() for l in line)))) 

または手動で値を摘み取る:

with io.open('file.txt', encoding='utf-8') as f: 
    values = [l.split() for l in line] 
x = [v[0] for v in values] 
y = [v[1] for v in values] 
0
data = open('file.txt').readlines() 

listX = [d.split('\t')[0] for d in data] 
listY = [d.split('\t')[1] for d in data] 
0
fo = open("foo.txt", "r+") 
str = fo.read() 
# If you have a new line character at the end 
str = str[:len(str)-1] 
a = str.split('\n') 
b = [] 
d = [] 
for i in a: 
    x = i.split('\t') 
    b.append(x[0]) 
    d.append(x[1]) 

bとdが必要なリストになります。