当前位置 : 主页 > 编程语言 > python >

python – 在文件中查找最小浮点数然后在其上方打印并排列

来源:互联网 收集:自由互联 发布时间:2021-06-25
我的数据文件如下所示: 3.6-band 6238Over0.5678Over0.6874Over0.7680Over0.7834 我想要做的是挑出最小的浮点数和它正上方的单词并打印这两个值.我不知道我在做什么.我试过了 df=open('filepath') for
我的数据文件如下所示:

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))没有成功,得到一个错误,说没有属性搜索.所以这就是我到目前为止所尝试的,我仍然不知道如何打印最小浮动之前的行.建议/帮助/建议将不胜感激,谢谢.

作为旁注:这个数据文件是具有相似特征的较大的一个示例,但是“Over”一词也可以是“Under”,这就是我需要打印它的原因.

将项目存储在列表,[word,num]对列表中,然后在列表列表中应用min.使用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

这里lis看起来像这样:

[['3.6-band', '6238'], ['Over', '0.5678'], ['Over', '0.6874'], ['Over', '0.7680'], ['Over', '0.7834']]
网友评论