查找文件中的最小浮点,然后在其上打印并在其上面一行
我的数据文件如下所示:
3.6-band
6238
Over
0.5678
Over
0.6874
Over
0.7680
Over
0.7834
我想要做的是挑选出最小的浮点数及其正上方的单词,然后打印这两个值。我不知道我在做什么。我试过了
df=open('filepath')
for line in df:
df1=line.split()
df2=min(df1)
我的尝试至少是试图隔离最小的浮点数。问题在于,这只是给我最后的价值。我认为这是python的一个问题,它不知道从迭代开始,但又…不知道我在做什么。我尝试df2=min(df1.seek(0))
没有成功,却说错了no
attribute seek
。因此,这是到目前为止我尝试过的方法,我仍然不知道如何打印最小浮点数之前的行。意见/帮助/建议将不胜感激,谢谢。
附带说明:此数据文件是具有类似特征的较大文件的示例,但是“ Over”一词也可以是“ Under”,这就是为什么我也需要打印该文件。
-
将项目存储在一个列表列表中,
[word,num]
然后成对,然后将其应用min
到该列表列表中。使用key
参数ofmin
来指定必须使用哪个项目进行项目比较:with open('abc') as f: lis = [[line.strip(),next(f).strip()] for line in f] minn = min(lis, key = lambda x: float(x[1])) print "\n".join(minn) ... Over 0.5678
这里
lis
看起来是这样的:[['3.6-band', '6238'], ['Over', '0.5678'], ['Over', '0.6874'], ['Over', '0.7680'], ['Over', '0.7834']]