# Julia array slicing to list

**URL:** <https://discourse.julialang.org/t/julia-array-slicing-to-list/84262>\
**Category:** General Usage\
**Tags:** indexing, array, matrices\
**Created:** [July 15, 2022, 10:38am UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262 "2022-07-15T10:38:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ayodyas](https://avatars.discourse-cdn.com/v4/letter/a/90db22/32.png) [@ayodyas](https://discourse.julialang.org/u/ayodyas)\
**Post date:** [July 15, 2022, 10:38am UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262/1 "2022-07-15T10:38:46Z")

</div>

I have A= [2 1;1 2;3 3;2 4;3 5;3 6;1 7;1 8;2 9],

I wanted to get the values in second column when column one have same values, as a separate list.

like— when first column value=1, [2,7,8]  
similarly second column value= 2, [1,4,9] using a for loop.

thanks in advance

---

<div class="post-metadata">

**Author:** ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)\
**Post date:** [July 15, 2022, 10:50am UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262/2 "2022-07-15T10:50:58Z")

</div>

Something like this?

```julia
julia> A[@view(A[:,1]) .== 1, 2]
3-element Vector{Int64}:
 2
 7
 8

julia> A[@view(A[:,1]) .== 2, 2]
3-element Vector{Int64}:
 1
 4
 9

```

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [July 15, 2022, 10:51am UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262/3 "2022-07-15T10:51:48Z")

</div>

```julia
julia> [x => A[@view(A[:, 1]) .== x, 2] for x ∈ unique(A[:, 1])]
3-element Vector{Pair{Int64, Vector{Int64}}}:
 2 => [1, 4, 9]
 1 => [2, 7, 8]
 3 => [3, 5, 6]

```

---

<div class="post-metadata">

**Author:** ![rocco\_sprmnt21](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rocco_sprmnt21/32/20127_2.png) [@rocco\_sprmnt21](https://discourse.julialang.org/u/rocco_sprmnt21)\
**Post date:** [July 15, 2022, 5:21pm UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262/5 "2022-07-15T17:21:16Z")

</div>

although the description of the request is not entirely clear, I propose a solution in line with the others

```julia

A= [2 1;1 2;3 3;2 4;3 5;3 6;1 7;1 8;2 9]

d=Dict{Int, Vector{Int}}()
    for r in axes(A,1)
        push!(get!(()->[],d, A[r,1]),A[r,2])
    end
d

```

or

```julia

foreach(r->push!(get!(()->[],d, A[r,1]),A[r,2]),axes(A,1))

reduce((d,r)->merge(d, Dict(A[r,1]=>[get!(()->[],d, A[r,1]);[A[r,2]]])),axes(A,1), init=Dict{Int, Vector{Int}}())

```

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [July 15, 2022, 7:30pm UTC](https://discourse.julialang.org/t/julia-array-slicing-to-list/84262/6 "2022-07-15T19:30:38Z")

</div>

A suggested small tweak to Nils’ code above:

```julia
A = [2 1; 1 2; 3 3; 2 4; 3 5; 3 6; 1 7; 1 8; 2 9]
d = @views Dict(x => A[A[:,1] .== x, 2] for x ∈ unique(A[:,1]))
# then we can do:
d[1], d[2], d[3]

```
