2013-03-12 51 views
2

我想找到更好的尋找替代驗證碼:如何(優雅地)一次迭代兩個列表?

(def x (range 1 10)) 
(def y '(0 4 3 5 1 2 7 3 11)) 
(for [i (range 0 (count y))] [(nth x i) (nth y i)]) 

如果我已經有了我可以簡單地

(def z (for [i (range 0 (count y))] [(nth x i) (nth y i)])) 
(for [[x y] z] [x y]) 

你能找到一些更好的尋找替代以前的結果呢?

示例使得短而易於閱讀。如果您修改它以執行更復雜的操作,則第一個示例可能會停止可讀。

回答

8

您可以使用map

(map vector x y) 
+0

如果y大於x不再那麼你就必須與尼爾斯墊X,以獲得相同的行爲OP的代碼。但既然這個例子有x和y相同的長度,這將起作用。 – Alex 2013-03-12 21:21:00

+0

Scratch - 如果y更長,OP的代碼將拋出異常。無論如何,這是一個更安全的選擇。 – Alex 2013-03-12 21:22:29

相關問題