2017-04-24 54 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 

最終我想創建兩個平行的列表這樣的:

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將是您的必需列表。