Here's one approach:

(into {} [[:a 1] [:b 2] [:c 3]])

=> {:a 1, :b 2, :c 3}

On Oct 14, 11:54 am, Henk <henkp...@gmail.com> wrote:
> Hi All,
>
> In Python I was used to be able to easily create dictionaries from
> lists of key value 'pairs' (tuples or list), e.g. like this:
>
> dict([(10, 20), (30, 40)]) #using the dict constructor
> =>
> {10:20, 30:40}
>
> What would be the equivalent in Clojure?, e.g. the normal Clojure hash-
> map function takes a list
> of alternating keys and values which is not quite the same.
> This is a quite common need (especially in the context of initializing
> a hash-map from a list comprehension, like this:
>
> (dict (for [x programmers :when ((x :-p rogramming_skills) :java)]
> [(x :id) (str (x :firstname) " " (x :lastname))]))
>
> This function seems to do the trick:
>
> (defn dict [x] (apply hash-map (apply concat x)))
>
> but it is quite slow, e.g. much slower than the python native version
> (I did some small benchmarks on this), while the list comprehension
> itself is much faster than python...

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to