查找文件中的最小浮点,然后在其上打印并在其上面一行

发布于 2021-01-29 19:16:34

我的数据文件如下所示:

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”,这就是为什么我也需要打印该文件。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    将项目存储在一个列表列表中,[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']]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看