我的数据文件如下所示:
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。因此,这是到目前为止我尝试过的方法,我仍然不知道如何打印最小浮点数之前的行。意见/帮助/建议将不胜感激,谢谢。
df2=min(df1.seek(0))
no attribute seek
附带说明:此数据文件是具有类似特征的较大文件的示例,但是“ Over”一词也可以是“ Under”,这就是为什么我也需要打印该文件。
将项目存储在一个列表列表中,[word,num]然后成对,然后将其应用min到该列表列表中。使用key参数ofmin来指定必须使用哪个项目进行项目比较:
[word,num]
min
key
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看起来是这样的:
lis
[['3.6-band', '6238'], ['Over', '0.5678'], ['Over', '0.6874'], ['Over', '0.7680'], ['Over', '0.7834']]