压缩集合

时间:2010-08-01 16:04:38

标签: python clojure zip sequence

如何在Clojure中压缩两个序列? IOW,Python zip(a, b)的Clojure等价物是什么?

编辑: 我知道如何定义这样的功能。我只是想知道标准库是否已经提供了这样的功能。 (如果没有,我会非常惊讶。)

3 个答案:

答案 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])