2017-02-06 2 views
0

그래서 좌표 목록과 같은 여러 목록이있는 목록이 있습니다. 내 경우 엔 체스 판에 놓여 있습니다. 목록은 다음과 같을 것입니다 : [(3,3), (4,3), (5,3), (6,3), (3,4), (4,4) 4), (6, 4), (3, 5), (4, 5)] 이것은 단지 예입니다. 내 문제는 이러한 코디언트 중 하나가 체스 판 (예 : 1-8)의 일정 범위를 벗어 났는지 확인해야합니다. 불행히도 나는 단지 숫자로 구성된 목록으로 작동하는 all() 명령을 얻을 수 있었고 숫자 목록을 가진 목록으로는 사용할 수 없었습니다.목록의 목록에있는 숫자가 특정 범위에 있는지 확인합니다.

+0

몇 가지 : 먼저 '(4, 4)'등을 가리키고 있거나'[(3,3), (4,3), (5,3), ((,), 6, 3), (3,4), (4,4), (5, 4), (6,4), (3,5), 명부? 둘째, 튜플 중 하나가 8을 초과하는 값을 가지면 어떻게 될까요? – roganjosh

답변

-1

당신이 기능을 최대 NumPy와 모듈을 가져 와서 사용할 수 있습니다

import numpy as np 

>>> l =np.array([(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)]) 

>>> l.max() 
6 
+0

나는 downvote하지 않았다. 그러나 numpy는 과도한 것처럼 보이는데, 특히 OP는 numpy 솔루션을 요구하지 않았고 numpy도 없다 (표준 라이브러리의 일부가 아님). –

+0

확인, 공정한 포인트 :) 당신의 솔루션은 꽤 산뜻합니다. –

1

그런 다음 개인의 각을 통해 으로 반복은 좌표 : A는 범위를 벗어난 좌표가있는 곳에

>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)] 
>>> all(1 <= c <= 8 for coord in coords for c in coord) 
True 

가의 두 가지 사례를 해보자 :

>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (3, 4), (0, 5), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)] 
>>> all(1 <= c <= 8 for coord in coords for c in coord) 
False 
>>> coords = [(3, 3), (4, 3), (5, 3), (6, 3), (4, 88), (3, 4), (4, 4), (5, 4), (6, 4), (3, 5), (4, 5)] 
>>> all(1 <= c <= 8 for coord in coords for c in coord) 
False 
관련 문제