2012-12-06 21 views
0

目的:讀取一個數據文件(數值),創建陣列/列表 問題:每個數字被形成爲陣列,代替我需要整個值作爲一個陣列/列表讀取數據文件到陣列/列表

輸入的數據文件(1.txt的):2列由標籤間隙隔開

0.85787 0.8E-03

0.8578 45.8E-03

0.857878 5.8E-03

0.657878 2.3E-03

..... ......

crs = open("1.txt","r") 
for line in crs: 
x = line.split() 
k=str(x[0]) # string to avoid spacing problem 
v=str(x[1]) 
print k[0] 

K [0]只列出第一位數即,

,但我的要求是存儲在K [0] ... 0.657878 0.85787在K [3] ....

和0.8E-03爲V [0] ... ... v [3]中的2.3E-03 ....並進一步使用它,重要的是不存在空白空白/間隙。

歡迎提出建議。

回答

0

如果您需要爲您的數據的兩列的最簡單方法是在啓動循環之前簡單地創建列表創建單獨的列表,然後附加到他們爲你遍歷文件:

k = [] 
v = [] 
with open("1.txt", "r") as crs: 
    for line in crs: 
     x = line.split() 
     k.append(x[0]) # use float(x[0]) if you want numbers rather than strings 
     v.append(x[1]) 

更多「Pythonic」(但可能更難理解)的解決方案是使用生成器表達式和zip函數同時創建兩個列表:

with open("1.txt", "r") as crs: 
    k, v = zip(*(line.split() for line in crs))