2017-02-06 10 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)、(4,5)]となり、リスト?第2に、タプルの1つが8を超える値を持つ場合、何が起こるはずですか? – roganjosh

答えて

-1

あなたは関数max 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

ok、fair point :)あなたのソリューションはきれいです –

1

は、その後、個々のそれぞれを通る反復は座標:範囲外の座標がある場合

>>> 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 

はのは2例を試してみましょう:

>>> 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 
関連する問題