从文本文件获取输入并在python中存储为二维模式

时间:2014-03-04 17:14:23

标签: python arrays floating-point text-files multidimensional-array

假设我的文本文件内容为:

00   0.21 
11   0.12
10   2.51
01   0.25

第一列是二进制,第二列是浮点值。在读取文本文件后,我的输出应采用以下二维数组格式:

input1 = [[0,0],[1,1],[1,0],[0,1]]
input2 = [[0.21],[0.12],[2.51],[0.25]]

请给出任何想法以获得此输出。

3 个答案:

答案 0 :(得分:2)

您可以使用split

for line in file:
    binColumn, floatColumn = line.split()
    input1.append(list(map(int, binColumn)))
    input2.append([float(floatColumn)])

答案 1 :(得分:1)

这是一个使用建议的csv模块的例子。

import csv

with open ('egal', 'r') as f:
    #Filtering away empty items
    #If there is a neater way, please advice
    lines = [[x for x in x if x] for x in csv.reader(f, delimiter = ' ')]

print(lines)
input1, input2 = zip(*lines)
input1 = [[int(x) for x in x] for x in input1]
input2 = [[float(x)] for x in input2]
print(input1)
print(input2)

示例输出:

[['00', '0.21'], ['11', '0.12'], ['10', '2.51'], ['01', '0.25']]
[[0, 0], [1, 1], [1, 0], [0, 1]]
[[0.21], [0.12], [2.51], [0.25]]

答案 2 :(得分:0)

你说你正在阅读一个文本文件。您似乎正在阅读文本行,例如

inline = '00 0.21'

您可以使用split来获取

inlst = inline.split(' ')

产生

['00', '0.21']

给出

input1 = []
input2 = []

您现在使用

input1.append((inlst[0][0], inlst[0][1]))
input2.append(float(inlst[1]))

现在,您可以在列表中添加相应的条目。现在把它放在你的线读逻辑的循环中。