用带舍入误差的索引方法在列表中查找浮点(Python)

2024-04-24 08:56:22 发布

您现在位置:Python中文网/ 问答频道 /正文

通常,我们得到的值会受到舍入错误的影响,当我们对浮点数(例如1.000000000001)进行运算时,如果我想在列表中找到1.0这样的值,最干净的方法是什么? 我试图找到1.0的索引,然后在y列表中找到相应的y值,我考虑过使用if语句,在一定范围内找到x值,比如1.0+/-0.0000000000001,我相信有更好的方法。谢谢大家。你知道吗

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)

Tags: 方法列表indexreturnifdef错误语句
2条回答

您应首先对两个列表进行四舍五入,如下所示:

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。你知道吗

如果列表具有相同的len,一种方法是使用^{}和字典:

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

相关问题 更多 >