2014-10-22 3 views
0

자주 발생하는 값은 부동 소수점 숫자로 작업 할 때 반올림 오류의 영향을받습니다. 1.000000000001, 목록에서 1.0과 같은 값을 찾으려면 가장 명확한 방법은 무엇입니까? 1.0의 인덱스를 찾으려고 했으므로 y 목록의 해당 y 값을 찾으려고했습니다. if 문을 사용하여 1.0 +/- 0.0000000000001과 같은 특정 범위 내의 x 값을 찾았습니다. 그것을하는 더 좋은 방법이있을 것이라고 확신합니다. 모두에게 감사드립니다.반올림 오류 (파이썬)로 인덱스 메서드로 목록의 부동 소수점 찾기

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) 

답변

1

가 먼저 두 목록을 반올림한다 :

[0.0, 1.0, 2.0, 3.0] 

및 1.0을 찾을 수 있습니다.

+0

감사합니다. = D !!!!! –

0

당신의 목록은 같은 렌 하나 개의 방법이 zip 및 사전 사용하고있는 경우 :

xlist=[round(i,1) for i in xlist] 
ylist=[round(i,1) for i in ylist] 

이제 xlist이 될 것입니다 : 아래에 주어진

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