[英]How to convert column data from text file into list in Python?
我有一個文本文件,其中包含兩列數據,我想將每一列數據讀入Python列表。
例如 :
2500.3410 -0.60960758
2505.5803 -1.3031826
2510.8197 -0.64067196
2516.0593 -1.0230898
2521.2991 -0.20078891
我想創建兩個列表,一個包含第1列中的數據,另一個包含第2列中的數據,但是我不知道如何告訴Python執行此操作。
例如
list1 = [2500.3410, 2505.5803, 2510.8197, 2516.0593, 2521.2991]
如上所述,我已經在外殼中打開了文件並且可以讀取數據,但是在創建列表時遇到了麻煩。
您可以使用zip
函數並在map
float
:
zip(*[map(float,line.split()) for line in open('in_file')])
演示:
>>> s=""" 2500.3410 -0.60960758
... 2505.5803 -1.3031826
... 2510.8197 -0.64067196
... 2516.0593 -1.0230898
... 2521.2991 -0.20078891"""
>>>
>>> [i.split() for i in s.split('\n')]
[['2500.3410', '-0.60960758'], ['2505.5803', '-1.3031826'], ['2510.8197', '-0.64067196'], ['2516.0593', '-1.0230898'], ['2521.2991', '-0.20078891']]
>>> zip(*[map(float,i.split()) for i in s.split('\n')])
[(2500.341, 2505.5803, 2510.8197, 2516.0593, 2521.2991), (-0.60960758, -1.3031826, -0.64067196, -1.0230898, -0.20078891)]
但是請注意,作為zip
返回的元組列表,您可以使用map
函數將結果轉換為list:
>>> map(list,zip(*[map(float,i.split()) for i in s.split('\n')]))
[[2500.341, 2505.5803, 2510.8197, 2516.0593, 2521.2991], [-0.60960758, -1.3031826, -0.64067196, -1.0230898, -0.20078891]]
首先,您必須使用Python讀取文本文件,例如,如果您有一個名為record.txt包含數據集的文件,
file <- open('record.txt')
現在您必須逐行讀取文件:
lst = []
將整個文件存儲為列表列表,每個內部列表表示一個實例
for line in file:
lst.append([ float(x) for x in line.split()])
現在,您可以按照以下理解將column1提取為列表,將column 2提取為列表
column1 = [ x[0] for x in lst]
column2 = [ x[1] for x in lst]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.