找到文件中最小的浮点数,然后打印它及其上面的行

2024-02-14

我的数据文件如下所示:

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。这就是我到目前为止所尝试的,我仍然不知道如何打印最小浮点数之前的行。建议/帮助/建议将不胜感激,谢谢。

附带说明:此数据文件是具有类似特征的较大文件的示例,但“上方”一词也可能是“下方”,这就是为什么我也需要打印它。


将项目存储在列表列表中,[word,num]配对然后申请min在那份名单上。使用key的参数min指定必须使用哪个项目来进行项目比较:

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

Here lis看起来像这样:

[['3.6-band', '6238'], ['Over', '0.5678'], ['Over', '0.6874'], ['Over', '0.7680'], ['Over', '0.7834']]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

找到文件中最小的浮点数,然后打印它及其上面的行 的相关文章

随机推荐