Hi,

I want to be able to convert vectors to dictionaries and the other way 
round. I have coded these two functions:

function vec_to_dict(v, ll)
    d = Dict()
    assert(length(v) == length(ll))
    for i = 1:length(v)
        d[ll[i]] = v[i]
    end
    return d
end

function dict_to_vec(d)
    v = Array(Float64, 0)
    for k in keys(d)
        push!(v, d[k])
    end
    return v
end

The problem is that if I convert a vector to a dictionary first, and then 
convert it back to a vector, the vector is not ordered anymore. As an 
example, the output of this code:

v0 = [1.0, 2.0, 3.0]
ll = ["a", "b", "c"]
d = vec_to_dict(v0, ll)
v1 = dict_to_vec(d)
println(v0)
println(d)
println(v1)

is:

[1.0,2.0,3.0]
{"c"=>3.0,"b"=>2.0,"a"=>1.0}
[3.0,2.0,1.0]

Is there some way to get the initial vector back with such a transformation 
using a dictionary?

Thanks,

Reply via email to