clojure如何获取2d列表中项目的索引

use*_*839 3 indexing list clojure

如果我有一个像......的列表

(def test [[1 2 3]
           [4 5 6]
           [7 8 9]])
Run Code Online (Sandbox Code Playgroud)

我希望索引为5(这将是(1,1))我该怎么做?所以(找到5个测试)=(1,1)

M S*_*ith 8

使用列表推导(for)可以找到所有匹配位置的列表:

(def test [[1 2 3][4 5 6][7 8 9]])

(for [[x row] (map-indexed vector test) 
      [y val] (map-indexed vector row) 
      :when (= 5 val)]
   [x y])
 => ([1 1])
Run Code Online (Sandbox Code Playgroud)

编辑:使用解构工作'for'功能.