我有一些数据,
1 2 3 4
3 5 6 7
2 8 9 10
我的代码是
#!/bin/usr/python
file=open("fer.txt","r")
M=[]
P=[]
K=[]
def particle(M,P,K):
for line in file:
y=line.split()
M.append(y)
for i in range(3):
for j in range(4):
P.append(float(M[i][j]))
K.append(P)
return K
print(particle(M,P,K))
然后我得到了
[[1.0, 2.0, 3.0, 4.0, 3.0, 5.0, 6.0, 7.0, 2.0, 8.0, 9.0, 10.0], [1.0,
2.0, 3.0, 4.0, 3.0, 5.0, 6.0, 7.0, 2.0, 8.0, 9.0, 10.0], [1.0, 2.0, 3.0,
4.0, 3.0, 5.0, 6.0, 7.0, 2.0, 8.0, 9.0, 10.0]]
但我应该拥有或者我想要这样的东西,
[[1.0, 2.0, 3.0, 4.0,], [3.0, 5.0, 6.0, 7.0],[ 2.0, 8.0, 9.0, 10.0]]
编辑重复标记:我不知道它是一个重复的问题。我问的是另外一件事,我也想知道为什么我的代码不起作用。
答案 0 :(得分:1)
使用迭代。您可以使用map
将列表的所有元素转换为float。
<强>实施例强>
res = []
with open(filename2) as infile:
for line in infile:
line = line.strip()
res.append(map(float, line.split()))
print(res)
<强>输出:强>
[[1.0, 2.0, 3.0, 4.0], [3.0, 5.0, 6.0, 7.0], [2.0, 8.0, 9.0, 10.0]]
答案 1 :(得分:0)
第一个答案是正确的,但如果你想要一个班轮:
#sample.txt content:
1 2 3 4
3 5 6 7
2 8 9 10
#code:
In [12]: d = open('sample.txt').readlines()
...: result = [map(float, x.split()) for x in d]
In [13]: result
Out[13]: [[1.0, 2.0, 3.0, 4.0], [3.0, 5.0, 6.0, 7.0], [2.0, 8.0, 9.0, 10.0]]