我正试图进入Clojure社区。我一直在使用Python工作,我广泛使用的一个功能是zip()方法,用于迭代值对。在Clojure中是否有(聪明和短暂的)实现相同的方法?

有帮助吗?

解决方案

另一种方法是简单地使用map和一些按顺序收集其参数的函数,如下所示:

user=> (map vector '(1 2 3) "abc")
([1 \a] [2 \b] [3 \c])

其他提示

(zipmap [:a :b :c] (range 3))
-> {:c 2, :b 1, :a 0}

对地图进行迭代会成对发生,例如:像这样:

(doseq [[k v] (zipmap [:a :b :c] (range 3))]
  (printf "key: %s, value: %s\n" k v))

打印:

key: :c, value: 2
key: :b, value: 1
key: :a, value: 0

问题已得到解答,但仍然有 interleave ,它也处理任意数量的序列,但不会将结果序列分组为元组(但您可以使用 partition 为此。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top