[英]Processing pairs of values from two sequences in Clojure
我正在尝试加入 Clojure 社区。 我经常使用 Python,我广泛使用的功能之一是 zip() 方法,用于迭代值对。 在 Clojure 中是否有一种(聪明而简短的)方法来实现相同的目标?
另一种方法是简单地将 map 与一些 function 一起使用,按顺序收集其 arguments,如下所示:
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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.