加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 10:33:10 所属栏目:Python 来源:网络整理
导读:我的数据文件如下所示: 3.6-band 6238Over0.5678Over0.6874Over0.7680Over0.7834 我想要做的是挑出最小的浮点数和它正上方的单词并打印这两个值.我不知道我在做什么.我试过了 df=open('filepath') for line in df: df1=line.split() df2=min(df1) 这是我尝
我的数据文件如下所示:

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'],'0.6874'],'0.7680'],'0.7834']]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读