2016-08-13 4 views
0

ハッシュマップを作成しようとしていますが、各キーはボード上のアイテムです。Clojure 2Dハッシュマップの作成

{0-1} -1、[0 2] -1、[0 3] -1、[0 4] -1、[0 5] -1、 0] -1、[1 0] -1、[1 1] -1、[1 2] -1、[0 0] -1、 1]、[1] -1、[1] -1、[1 9] -1、[2] -1、 [2 1] -1、[2 3] -1、[2 4] -1、[2 5] -1、[2 6] -1、 [3] -1、[3 1] -1、[3 2] -1、[3 3] -1、[3 2] -1、 [3 5] -1、[3 7] -1、[3 8] -1、[3 9] -1、[4 0] -1、 1]、[4 4] -1、[4 5] -1、[4 6] -1、[4 7] -1、[4 4] -1、 1]、[5] -1、[5 2] -1、[5 3] -1、[5 4] -1、[5 4] -1、 5 5] -1, [5 6 ] -1、[5 7] -1、[5 8] -1、[5 9] -1、[6 0] -1、[6 1] -1、[6 2] -1、 [6 3 ] -1、[6 4] -1、[6 5] -1、[6 6] -1、[6 7] -1、[6 8] -1、[6 9] -1, [7 0 ] -1、[7 1] -1、[7 2] -1、[7 3] -1、[7 4] -1、[7 5] -1、[7 6] -1、 [7 7 -1、[7 8] -1、[7 9] -1、[8 0] -1、[8 1] -1、[8 2] -1、[8 3] -1、 [8 4 ] -1、[8 5] -1、[8 6] -1、[8 7] -1、[8 8] -1、[8 9] -1、[9 0] -1, [9 1 -1]、[9 2] -1、[9 3] -1、[9 4] -1、[9 5] -1、[9 6] -1、[9 7] -1、 [9 8 ] -1、[9 9] -1}

これまでのところ、私は

(zipmap (for [x (range 10) y (range 10)] [x y]) (repeat -1)) 
を持っています

そして、私はソートキーたい場合:私は、次の辞書の理解を考え出すことができるPythonで

(into (sorted-map) (zipmap (for [x (range 10) y (range 10)] [x y]) (repeat -1))) 

を:

board = {(x, y): -1 for x in range(5) for y in range(5)} 

私はですClojureの中に同様のことを行うことができれば、私は思ったんだけどより読み/私の現在のアプローチよりも効率的

答えて

1

あなたが一緒にリストの内包内部のキーと値を入れたい場合は、これを行うことができます:

(into {} (for [x (range 10) y (range 10)] [[x y] -1])) 

あなたはソートマップが必要な場合、あなたは、単に{}(sorted-map)に置き換えることができます。

(into (sorted-map) (for [x (range 10) y (range 10)] [[x y] -1])) 
関連する問題