I would like to create an array f containing n indices. The label of those indices is stored in a liste of length n, let's call it "list".

So I would like to have something like :

{f[list[[0]]], f[list[[1]],...}

The point is to affect the f[liste[[i]]] to some values after.

I tried to make a table, but the problem is that the indices cannot be a list from what I have seen (in the sense that they must be regularly spaced).

I also tried to use the array function but I have the same problem, I cannot specify the indices as being a list, it must be a regular spacing.

How can I do it ?

  • 2
    $\begingroup$ ... also Table[f[i],{i, list}]? $\endgroup$ – kglr Jun 24 '19 at 9:51
  • $\begingroup$ List indices start with 1 in Mathematica, so list[[0]] is not valid (it refers to the head, which is List). $\endgroup$ – Roman Jun 24 '19 at 10:32
  • $\begingroup$ Maybe f /@ list would work. $\endgroup$ – Roman Jun 24 '19 at 10:33

Use AssociationMap. E.g.,

m = AssociationMap[f, {8, 29, 16}]
m[29]  (* f[29] *)

Given a list of integers,

list = RandomInteger[{1, 10}, 10]
(*    {5, 8, 8, 2, 6, 2, 3, 7, 7, 5}    *)

we can construct the required {f[list[[1]]], f[list[[2]], ...} with

f /@ list
(*    {f[5], f[8], f[8], f[2], f[6], f[2], f[3], f[7], f[7], f[5]}    *)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.