码迷,mamicode.com
首页 > 其他好文 > 详细

Clojure:将两个list合并成一个map

时间:2014-06-20 23:32:09      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   color   使用   

假设我们有两个list,分别是:

(def a [“one” “two” “three”])
(def b [1 2 3])

我们要把它们合为一个键值对应的map,做法很简单:

1. 先将a和b合为一个一一对应的list:

(map vector a b) => (["one" 1] ["two" 2] ["three" 3])

2. 然后再将list转化成为map:

(into {} (map vector a b)) => {"one" 1, "two" 2, "three" 3}

3. 有点像咯,不过怎么把”one”, “two”, “three”转化成为keyword呢?我们可以使用keyword方法来帮忙,最终成品如下:

1 (into {}
2       (for [[k v]
3             (map vector a b)]
4           [(keyword k) v]))
5 => {:one 1, :two 2, :three 3}

成功!我们通过一个for循环先将(["one" 1] ["two" 2] ["three" 3])转为([:one 1] [:two 2] [:three 3]),然后再调用into语句,这样就实现了将两个list合并成一个map的需求了。

Clojure:将两个list合并成一个map,布布扣,bubuko.com

Clojure:将两个list合并成一个map

标签:style   class   blog   code   color   使用   

原文地址:http://www.cnblogs.com/ilovewindy/p/3791829.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!