通常情况下,当我们对浮点数进行操作时,我们得到的值会受到舍入错误的影响,例如1.000000000001,如果我想在列表中找到类似1.0的值,那么最干净的方法是什么? 我试图找到1.0的索引,所以要在y列表中找到相应的y值。我想过使用if语句,找到某个范围内的x值,比如1.0 +/- 0.0000000000001,I&# 39;我确定有更好的方法。谢谢大家。
xlist=[0,1.0000000000001,2.0.3.0]
ylist=[0.0,1.0,2.0,3.0]
def numberfinder(xlist=[],ylist=[]):
return ylist[xlist.index(1.0)]
print numberfinder(xlist,ylist)
答案 0 :(得分:1)
您应首先对两个列表进行舍入,如下所示:
xlist=[round(i,1) for i in xlist]
ylist=[round(i,1) for i in ylist]
现在xlist将成为:
[0.0, 1.0, 2.0, 3.0]
和1.0可以找到。
答案 1 :(得分:0)
如果您的列表具有相同的len,则使用zip
和字典:
xlist=[0,1.0000000000001,2.0.3.0]
ylist=[0.0,1.0,2.0,3.0]
>>> zip_list=zip(xlist,ylist)
>>> d_list=dict(zip_list)
>>> d_list[1.0]
1.0000000000001