真的很容易PYTHON排序漂浮

时间:2015-09-23 15:19:21

标签: python sorting

我有一个.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

我必须比较这些文字值。

2 个答案:

答案 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