簡體   English   中英

如何在Python中將列數據從文本文件轉換為列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM