# Indexing using tuples

**URL:** <https://discourse.julialang.org/t/indexing-using-tuples/69838>\
**Category:** New to Julia\
**Created:** [October 15, 2021, 4:25pm UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838 "2021-10-15T16:25:47Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![larsims](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@larsims](https://discourse.julialang.org/u/larsims)\
**Post date:** [October 15, 2021, 4:25pm UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/1 "2021-10-15T16:25:47Z")

</div>

I’m trying to use a tuple of strings for indexing a variable (in JuMP). I’m able to loop, etc. but can’t figure out how index a single element. Example, Products is my index tuple, x is my variable.

julia\> Products  
(“Product1”, “Product2”, “Product3”, “Product4”)

julia\> x  
1-dimensional DenseAxisArray{VariableRef,1,…} with index sets:  
Dimension 1, (“Product1”, “Product2”, “Product3”, “Product4”)  
And data, a 4-element Vector{VariableRef}:  
x[Product1]  
x[Product2]  
x[Product3]  
x[Product4]

julia\>

I want to write x[“Product2”], but this does not work. x[Products[2]] works, but I want to use the actual name, “Product2”.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 15, 2021, 4:55pm UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/2 "2021-10-15T16:55:42Z")

</div>

> [@larsims](#):
>
> I want to write x[“Product2”], but this does not work. x[Products[2]] works, but I want to use the actual name, “Product2”.

looks identical to me i.e. should just work, can you post runnable code?

---

<div class="post-metadata">

**Author:** ![larsims](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@larsims](https://discourse.julialang.org/u/larsims)\
**Post date:** [October 16, 2021, 6:56am UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/3 "2021-10-16T06:56:29Z")

</div>

It seems to have to do with the way the tuple is generated.

When I “hardcode” the tuple, then it works:

julia\> Products = (“Product1”, “Product2”, “Product3”, “Product4”)  
(“Product1”, “Product2”, “Product3”, “Product4”)

But if I construct the tuple by reading from a file, it does not work:

julia\> Products = tuple(Example3\_df[:,1]…); # Names of products

julia\> Products  
(“Product1”, “Product2”, “Product3”, “Product4”)

But the tuple (Products) looks identical to me!

---

<div class="post-metadata">

**Author:** ![mkitti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkitti/32/12459_2.png) [@mkitti](https://discourse.julialang.org/u/mkitti)\
**Post date:** [October 16, 2021, 7:04am UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/4 "2021-10-16T07:04:11Z")

</div>

What is `typeof(Products)` when you hardcode it and when you construct it from the file?

---

<div class="post-metadata">

**Author:** ![larsims](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@larsims](https://discourse.julialang.org/u/larsims)\
**Post date:** [October 16, 2021, 7:24am UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/5 "2021-10-16T07:24:11Z")

</div>

There is a small difference:  
julia\> Products = tuple(data\_df[:,1]…)  
(“Product1”, “Product2”, “Product3”, “Product4”)

julia\> typeof(Products)  
NTuple{4, String15}

julia\> Products = (“Product1”, “Product2”, “Product3”, “Product4”)  
(“Product1”, “Product2”, “Product3”, “Product4”)

julia\> typeof(Products)  
NTuple{4, String}

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [October 16, 2021, 12:49pm UTC](https://discourse.julialang.org/t/indexing-using-tuples/69838/6 "2021-10-16T12:49:55Z")

</div>

> [@larsims](#):
>
> String15

[GitHub - JuliaStrings/InlineStrings.jl: Fixed-width string types for Julia](https://github.com/JuliaData/InlineStrings.jl) gripe I guess…the bandaid solution right now is to `String.(tuple(data_df[:,1]…))` probably
