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