我有一个.txt文件 这个文件的形式是这样的
1.0
2.32
10e-30
1.333
45.333
我希望对这些值进行排序。 所以,我的代码是
f=open('a.txt','r')
k={}
for line in f:
p=line.strip().split('\t')
k=float(p[0])
q=sorted(k)
print q
但是,它说
'float' object is not iterable
我必须比较这些文字值。
答案 0 :(得分:4)
如果文件的每一行只有浮点数,如例子所示,这将有效。
with open('a.txt') as fin:
text = fin.read().split()
text = [float(k) for k in text]
text.sort()
print(text)
答案 1 :(得分:2)
l = []
with open('a.txt') as f:
for i in f:
l.append(float(i))
l.sort()
for i in l:
print i
或者你可以使用这样的列表推导来做这些事情。只有一行,更简单:
l = sorted(float(line) for line in open('a.txt'))
如果您不需要将它们保存在列表中,您只需打印它们即可:
print sorted(float(line) for line in open('a.txt'))
感谢@TessellatingHeckler 。