我在这样的文件中有一些数据:
18499 0.00822792
14606 0.00778273
3926 0.00287178
2013 0.00130196
3053 0.000829384
16320 0.00249749
我想在一行中加载和解析python中的数据,这就是我现在写的:
with open(input_file) as f:
data = f.read()
data = [line.split() for line in data.split('\n') if line]
x = list(map((lambda x:float(x[0])), data))
y = list(map((lambda x:float(x[1])), data))
所以我的目标是拥有类似的东西:
x, y = ....
答案 0 :(得分:2)
with open(input_file) as f:
x,y = zip(*[map(float,line.split()) for line in f])
print x
print y
我想我的括号在那里平衡了...但是因为你不能意味着你应该......
[edit]修改了实际工作的代码......
答案 1 :(得分:2)
这个怎么样?
xy = numpy.loadtxt('input_file.txt');
x, y = xy[:, 0], xy[:, 1]
答案 2 :(得分:0)
>>> from itertools import izip
>>> x, y = map(list, izip(*(line.split() for line in open(input_file) if line)))
>>> x
['18499', '14606', '3926', '2013', '3053', '16320']
>>> y
['0.00822792', '0.00778273', '0.00287178', '0.00130196', '0.000829384', '0.00249749']