如何在Clojure中压缩两个序列? IOW,Python zip(a, b)
的Clojure等价物是什么?
编辑: 我知道如何定义这样的功能。我只是想知道标准库是否已经提供了这样的功能。 (如果没有,我会非常惊讶。)
答案 0 :(得分:3)
您可以轻松定义Python的zip:
等功能(defn zip
[& colls]
(apply map vector colls))
如果是(zip a b)
,则会变为(map vector a b)
答案 1 :(得分:0)
如果您希望输入为列表,则可以定义像这样的
的zip函数(defn zip [m] (apply map list m))
并像这样称呼它
(zip '((1 2 3) (4 5 6)))
此调用产生((1 4) (2 5) (3 6))
答案 2 :(得分:0)
这是否足够接近?
(seq (zipmap [1 2 3] [4 5 6]))
;=> ([3 6] [2 5] [1 4])