2013-11-09 2 views
0

나는 튜플목록에서 잘린 튜플 값을 확인 하시겠습니까?

나는이 튜플 (-0.405442, -6.94697)mylist 여부에 있는지 여부를 확인하려면
In [142]: mylist=[(0.0, 0.0), (0.0, 0.769883), (-0.01435677, 1.7573411), (-0.3796871, -0.40361387), (-0.27704585, -1.7006601), (-0.26976547, -2.6480746), (-0.27020714, -3.0438666), (-0.2759932, -3.638946), (-0.28580084, -4.182567), (-0.29590216, -4.5594716), (-0.31486654, -5.1321993), (-0.3386181, -5.701327), (-0.37045696, -6.34038), (-0.40544215, -6.94697), (-0.45580167, -7.711907), (-0.48936173, -8.165736), (-0.52177864, -8.558438), (-0.5721365, -9.112968), (-0.6326114, -9.723627), (-0.6764244, -10.130929), (-0.7162372, -10.471702), (-0.73864824, -11.2733345), (-0.6795322, -11.688038), (-0.6065086, -12.021755), (-0.52627456, -12.4043045), (-0.42850703, -13.172687), (-0.2827803, -15.462493), (-0.25139827, -16.006815), (-0.21802832, -16.84582)] 

의 목록을 가지고있다.

In [143]: mylist[13] 
Out[143]: (-0.40544215, -6.94697) 

을하지만 내 쿼리 튜플 (-0.405442, -6.94697) 다소 잘 렸습니다 : 아래 그림과 같이

(-0.40544215, -6.94697) 목록입니다.

파이썬이 (-0.405442, -6.94697)mylist에 있음을 알려주려면 어떻게해야합니까 (자르지 않음)?

+7

'-0.40544215! = -0.405442' –

+0

@Paulo 부 나에게 수치. 미안해! 하지만 절대로 두 자릿수를 놓친 이유가 없습니다. –

+0

더 이상 코드를 볼 수 없습니다. 내가 염려하는 한 구체적으로 물어 보면 질문이 많습니다. '(-0.405442, - 6.94697) in mylist'를 통역사에게 보냈다. –

답변

1

(-0.405442, -6.94697)이 (가) 목록에 없습니다. (-0.40544215, -6.94697)입니다. 당신이 튜플 6 소수점 자리의 정확도 목록에 있는지 확인하려면이 여러 번 확인하고 싶은 경우

, 당신의 새로운 목록을 작성 더 잘하지만,이

(-0.405442, -6.94697) in [(round(i[0], 6), round(i[1], 6)) for i in mylist] 

시도 : 숫자를 찾을 수 원하는 수를 뺀 숫자의 절대 값 인 경우 확인하여 원하는 값으로 "충분한을 닫습니다"경우

mynewlist = [(round(i[0], 6), round(i[1], 6)) for i in mylist] 
(-0.405442, -6.94697) in mynewlist 
+0

(-0.405442, -6.94697)이 목록에 없습니다. (-0.405442, -6.94697)입니다. ???? 둘 다 무슨 뜻이야? – Mutant

+0

@Mutant : Typo, fixed it – jazzpi

0

때문에 (-0.405442는 -6.94697)는 (-0.40544215, -6.94697)

>>> mylist=[(0.0, 0.0), (0.0, 0.769883), (-0.01435677, 1.7573411), (-0.3796871, -0.40361387), (-0.27704585, -1.7006601), (-0.26976547, -2.6480746), (-0.27020714, -3.0438666), (-0.2759932, -3.638946), (-0.28580084, -4.182567), (-0.29590216, -4.5594716), (-0.31486654, -5.1321993), (-0.3386181, -5.701327), (-0.37045696, -6.34038), (-0.40544215, -6.94697), (-0.45580167, -7.711907), (-0.48936173, -8.165736), (-0.52177864, -8.558438), (-0.5721365, -9.112968), (-0.6326114, -9.723627), (-0.6764244, -10.130929), (-0.7162372, -10.471702), (-0.73864824, -11.2733345), (-0.6795322, -11.688038), (-0.6065086, -12.021755), (-0.52627456, -12.4043045), (-0.42850703, -13.172687), (-0.2827803, -15.462493), (-0.25139827, -16.006815), (-0.21802832, -16.84582)] 
>>> (-0.40544215, -6.94697) in mylist 
True 

* 동일없는 문제의 오타 그러하지 아니하다.

+0

죄송합니다! 오타가 없습니다. 이제 왜 잘리는 지 궁금해하기 시작합니다. 나는 결코 그것을하지 않는다. –

0

당신이 이해를 사용하여 대략적인 일치를 찾으려면, 당신은 단지 확인하실 수 있습니다 예를 들어, 몇 가지 제한보다 적습니다.

>>> [(x,y) for (x,y) in mylist if abs(-0.405442-x)<0.001 and abs(-6.94697-y)<0.001] 

[(-0.40544215, -6.94697)] 

... 원하는 값의 0.001 이내의 값을 찾습니다.

관련 문제