List 如何在clojure中将hashmaps列表转换为一个hasmap?
我有一个列表,如下所示:List 如何在clojure中将hashmaps列表转换为一个hasmap?,list,clojure,hashmap,List,Clojure,Hashmap,我有一个列表,如下所示: ({:course 2, :mark 9} {:course 5, :mark 8} {:course 6, :mark 10}) 我想将其转换为hashmap: {:2 9 :5 8 :6 10} 列表是从mysql数据库创建的,我不知道我可以从数据库中以其他格式获取数据,这将更容易转换为一个hashmap,我使用了java.jdbc查询函数 有人能帮我吗 (fn [data] (into {} (map (juxt :course :mark) data)))
({:course 2, :mark 9} {:course 5, :mark 8} {:course 6, :mark 10})
我想将其转换为hashmap:
{:2 9 :5 8 :6 10}
列表是从mysql数据库创建的,我不知道我可以从数据库中以其他格式获取数据,这将更容易转换为一个hashmap,我使用了java.jdbc查询函数
有人能帮我吗
(fn [data] (into {} (map (juxt :course :mark) data)))
在
产生
{2 9, 5 8, 6 10}
{:2 9, :5 8, :6 10}
关键字函数不接受数字作为参数,因此我认为您无法获得所需的内容。但无论如何,数字和关键字一样好
错了!正如其他人所演示的,Clojure接受数字字符串作为关键字。我们可以对上述内容进行调整,以使用以下内容:
(fn [data] (into {} (map (juxt (comp keyword str :course) :mark) data)))
在
产生
{2 9, 5 8, 6 10}
{:2 9, :5 8, :6 10}
但是,正如我所说,我认为这是不必要的风险。为什么不把数字当作钥匙呢
进一步使用数字字符串作为关键字:
警察说
符号以非数字字符开头。。。
关键字类似于符号,除了:。。。进一步限制
在
产生
{2 9, 5 8, 6 10}
{:2 9, :5 8, :6 10}
关键字函数不接受数字作为参数,因此我认为您无法获得所需的内容。但无论如何,数字和关键字一样好
错了!正如其他人所演示的,Clojure接受数字字符串作为关键字。我们可以对上述内容进行调整,以使用以下内容:
(fn [data] (into {} (map (juxt (comp keyword str :course) :mark) data)))
在
产生
{2 9, 5 8, 6 10}
{:2 9, :5 8, :6 10}
但是,正如我所说,我认为这是不必要的风险。为什么不把数字当作钥匙呢
进一步使用数字字符串作为关键字:
警察说
符号以非数字字符开头。。。
关键字类似于符号,除了:。。。进一步限制
另一种变体。如果你有很多数据,可能会比缩略图的效率低
(zipmap (map (comp keyword str :course) data)
(map :mark data))
其中数据采用问题中指定的格式。另一种变体。如果你有很多数据,可能会比缩略图的效率低
(zipmap (map (comp keyword str :course) data)
(map :mark data))
其中数据采用问题中指定的格式。juxt在这里是个好主意!为了练习,这里有一个解决方案,可以将精确的请求输出:fn[data]转换为{}map juxt关键字str:course%:markdata@leontalbot我做的有点不同,里昂。我仍然对数字字符串关键字被接受感到惊讶。不管怎样,以关键字为函数的juxt非常有表现力。表达内部函数的另一个方法是->%:course str关键字,如果你正在玩代码高尔夫:仍然比我的长一个字符,呵呵.juxt在这里是个好主意!为了练习,这里有一个解决方案,可以将精确的请求输出:fn[data]转换为{}map juxt关键字str:course%:markdata@leontalbot我做的有点不同,里昂。我仍然对数字字符串关键字被接受感到惊讶。不管怎样,以关键字为函数的juxt非常有表现力。表达内部函数的另一个方法是->%:course str关键字,如果你正在玩代码高尔夫:仍然比我的长一个字符,呵呵。。。。或应用zipmap地图%数据[comp关键字str:course:mark]。。。或应用zipmap地图%数据[comp关键字str:course:mark]