2016-05-27 7 views
1

2n + 1サイズのグリッドの左上のセクションを取得するリストがあります。 [[0, 0], [0, 1], [1, 0], [1, 1]]と3×3(2N + 1)グリッド、例えばの左上隅の座標を取得します:ように見える座標リストをリスト/グリッド参照のセットに変換する

n = 1 
section = [[x, y] for x in range (n+1) for y in range (n+1)] 

[[1, 2, 3], [4, 0, 5], [6, 7, 8]]

私は、一つ一つを得ることができますこのリスト内のCOORDSの値を編集して、グリッドの四分の一セクション:私は何とか毎秒リストELEをindividualiseする必要が

for coOrd in topRight: 
    coOrd[1] += n 
for coOrd in botLeft: 
    coOrd[0] += n 
for coOrd in botRight: 
    coOrd[0] += n 
    coOrd[1] += n 

gridList[0][0], gridList[0][1]

私はそれぞれを得ることができることを好むだろう:私はこのようになりますグリッド全体の値を持つグリッドリストを参照するためにそれを使用することができるように

[0, 0], [0, 1], [1, 0]... -> [0][0], [0][1], [1][0] 

からメンターセクションforループを使用して、topLeft、topRightなどの各座標を調べ、それらをgridListに適用します。

gridTL = [gridList[0][0], gridList[0][1], gridList[1][0], gridList[1][1]] 
gridTR = [gridList[0][1], gridList[0][2], gridList[1][1], gridList[1][2]] 
gridBL = [gridList[1][0], gridList[1][1], gridList[2][0], gridList[2][1]] 
gridBR = [gridList[1][1], gridList[1][2], gridList[2][1], gridList[2][2]] 

がうまくいけば、私は申し訳ありません持っていない場合は、より多くのを聞いてください、あなたが理解するために十分に説明してきたと私が説明するために私の全力を尽くします。

本質的に、私は(3x3)グリッドを4つのセクションに分割する必要があります。座標を取得するループが出てきました。これらの座標を実装するためには苦労しています。グリッド。

ありがとうございました。

答えて

1

あなたはヘルパー関数を書くことができます:

def gL(gridList, values): 
    return gridlist[values[0]][values[1]] 

その後、sectionが希望のセクションのいずれか...

が注意され、あなたの

gridTL = map(lambda m: gl(gridList, m), section) 

mapは非常にPythonicとは考えられません。あなたは、同様のことについてリスト内包表記を使うことを検討することができます。このようなもの:

gridTL = [gridlist[m[0]][m[1]]for m in section] 
+0

ありがとう、あなたは神です!私はリストの理解を使用してそれを動作させようとしましたが、エラー後にエラーが発生しました。 –

関連する問題