# Create a Dictionary from Arrays of Keys and Values

**URL:** <https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908>\
**Category:** New to Julia\
**Created:** [August 22, 2018, 11:24pm UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908 "2018-08-22T23:24:14Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Elmer\_Cusipuma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elmer_cusipuma/32/11958_2.png) [@Elmer\_Cusipuma](https://discourse.julialang.org/u/Elmer_Cusipuma)\
**Post date:** [August 22, 2018, 11:24pm UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/1 "2018-08-22T23:24:14Z")

</div>

I am trying create a Dictionary from Arrays of Keys and Values

```julia
julia> id = [1,2,3,4];
julia> coord = [0 0 0;1 0 0;5 3 0;6 5 1];

```

and I want something like:

`Dict(id,coord)`

i.e.

```julia
julia> X = Dict(1 => [0,0,0],
                2 => [1,0,0],
                3 => [5,3,0],
                4 => [6,5,1])
Dict{Int64,Array{Int64,1}} with 4 entries:
  4 => [6, 5, 1]
  2 => [1, 0, 0]
  3 => [5, 3, 0]
  1 => [0, 0, 0]

```

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [August 22, 2018, 11:37pm UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/2 "2018-08-22T23:37:53Z")

</div>

One way is `Dict(zip(keys, values))`.

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [August 23, 2018, 12:50am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/3 "2018-08-23T00:50:11Z")

</div>

Or the slick new syntax `Dict(ks .=> vs)` which simply falls out of broadcasting and the `Dict` constructor.

---

<div class="post-metadata">

**Author:** ![ExpandingMan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/expandingman/32/866_2.png) [@ExpandingMan](https://discourse.julialang.org/u/ExpandingMan)\
**Post date:** [August 23, 2018, 1:21am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/4 "2018-08-23T01:21:52Z")

</div>

It would be cool if the documentation had a “cool tricks that are hard to look up in the documentation” documentation page.

---

<div class="post-metadata">

**Author:** ![Elmer\_Cusipuma](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elmer_cusipuma/32/11958_2.png) [@Elmer\_Cusipuma](https://discourse.julialang.org/u/Elmer_Cusipuma)\
**Post date:** [August 23, 2018, 2:11am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/5 "2018-08-23T02:11:52Z")

</div>

Thank you so much for your help.  
I don’t get an array in the values (julia v0.7)

```julia
julia> Dict(id .=> coord)
Dict{Int64,Int64} with 4 entries:
  4 => 1
  2 => 0
  3 => 0
  1 => 0

```

i.e.

```julia
Dict{Int64,Array{Int64,1}} with 4 entries:
  4 => [6, 5, 1]
  2 => [1, 0, 0]
  3 => [5, 3, 0]
  1 => [0, 0, 0]

```

---

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [August 23, 2018, 2:22am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/6 "2018-08-23T02:22:22Z")

</div>

You need:

```julia
julia> Dict( id .=> [coord[i,:] for i=1:4] )
Dict{Int64,Array{Int64,1}} with 4 entries:
  4 => [6, 5, 1]
  2 => [1, 0, 0]
  3 => [5, 3, 0]
  1 => [0, 0, 0]

```

Also, this is faster:

```julia
julia> Dict( (id[i] => coord[i,:] for i=1:4) )
Dict{Int64,Array{Int64,1}} with 4 entries:
  4 => [6, 5, 1]
  2 => [1, 0, 0]
  3 => [5, 3, 0]
  1 => [0, 0, 0]

```

Edit: I left two extra unnecessary parens, thanks to @StefanKarpinski, this can be much nicer:

```julia
Dict( id[i] => coord[i,:] for i=1:4 )

```

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [August 23, 2018, 3:12am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/7 "2018-08-23T03:12:06Z")

</div>

You can drop one pair of parens in the latter one.

---

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [August 23, 2018, 3:34am UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/8 "2018-08-23T03:34:46Z")

</div>

Yes, this makes it much nicer, thank you.

---

<div class="post-metadata">

**Author:** ![Ken\_Williams](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ken_williams/32/5289_2.png) [@Ken\_Williams](https://discourse.julialang.org/u/Ken_Williams)\
**Post date:** [April 21, 2025, 9:04pm UTC](https://discourse.julialang.org/t/create-a-dictionary-from-arrays-of-keys-and-values/13908/9 "2025-04-21T21:04:30Z")

</div>

> [@ExpandingMan](#):
>
> It would be cool if the documentation had a “cool tricks that are hard to look up in the documentation” documentation page.

It would have to be called “cool tricks that _were_ hard to look up in the documentation”. 😉
