我是python的新手,我有一个C程序可以输出像这样的浮点数列表:
f11
f12
...
f1n
f21
f22
...
f2m
.
.
.
fk1
...
fkl
我想把这些花车放到列表清单中:
[[f11,...], [f21, ...], ..., [fk1,...]]
我有一个解决方案(使用特定的浮点数作为分隔符),但它非常难看。输入的格式是灵活的...有一个简单的解决方案吗?
答案 0 :(得分:2)
假设您的数字看起来像这样:
1.435235
3.23421
4.523421
42.3241
-1.2342
0.09901
134134.2
1.2342111
13.111
14.23521
...每组数字由两个换行符分隔,你可以这样:
def parse_group(group):
return [float(n) for n in group.split('\n')]
def get_numbers(string, separator='\n\n'):
groups = str.split(separator)
return [parse_group(group) for group in groups]
在您的函数上调用get_numbers
应该会产生类似于:
>>> print get_numbers(input)
[[1.435235, 3.23421, 4.523421, 42.3241], [-1.2342, 0.09901, 134134.2], [1.2342111, 13.111, 14.23521]]
这假定每个组由两个换行符(空行)分隔,但您可以相应地对其进行参数化。