# Get multiple elements from named tuples

**URL:** https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614
**Category:** General Usage
**Tags:** namedtuple
**Created:** [November 1, 2022, 2:11pm UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614 "2022-11-01T14:11:17Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![johnbb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnbb/32/34233_2.png) [@johnbb](https://discourse.julialang.org/u/johnbb)
#### Post date: [November 1, 2022, 2:11pm UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614/1 "2022-11-01T14:11:17Z")

</div>

Why does the following not work for named tuples?

```julia
x = (a=1, b=2, c=3)
x[1:2]
x[[1,2]]

```

With unnamed tuples like `x = (1, 2, 3)` it works fine. Tested with Julia 1.8.2.

---

<div class="post-metadata">

### Author: ![rdeits](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rdeits/32/286_2.png) [@rdeits](https://discourse.julialang.org/u/rdeits)
#### Post date: [November 1, 2022, 3:29pm UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614/2 "2022-11-01T15:29:20Z")

</div>

My initial reaction is that named tuples are indexed by name, not by index, so `x[1:2]` doesn’t make sense. But we _do_ allow indexing into a named tuple by a single index:

```julia
julia> x = (a=1, b=2, c=3)
(a = 1, b = 2, c = 3)

julia> x[1]
1

```

so I agree it’s surprising that we don’t allow you to supply multiple indices.

---

<div class="post-metadata">

### Author: ![johnbb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnbb/32/34233_2.png) [@johnbb](https://discourse.julialang.org/u/johnbb)
#### Post date: [November 1, 2022, 3:41pm UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614/3 "2022-11-01T15:41:28Z")

</div>

Good point. `x[[:a, :b]]` works. I guess my expectations are inherited from two decades with R where one can use both types of indexing, at least for lists, arrays and data frames.

---

<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: [November 1, 2022, 4:10pm UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614/4 "2022-11-01T16:10:18Z")

</div>

The keys and values from named tuple `x` are accessible separately with such indexing:

```julia
values(x)[1:2]
keys(x)[1:2]

```

---

<div class="post-metadata">

### Author: ![johnbb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnbb/32/34233_2.png) [@johnbb](https://discourse.julialang.org/u/johnbb)
#### Post date: [November 2, 2022, 11:26am UTC](https://discourse.julialang.org/t/get-multiple-elements-from-named-tuples/89614/5 "2022-11-02T11:26:37Z")

</div>

… and from this

```julia
julia> x[keys(x)[1:2]]
(a = 1, b = 2)

```
