I have a question: what are you going to do with this array? Your current definition of v will lead to infinite recursion and execution of the second Code Sample won’t help. So, could you please add some details?
These variables that I have in this array are also in another variable. The goal would be to change the values of these variables so that I could easily re-evaluate the other variable.
(The other variable is a product of a quite lengthy initialization. Therefore I would prefer not to go through it every time but rather have it as a variable that can be re-evaluated.)
So, you have an expression involving v[i], {i, 1, n} that is the result of some lengthy computation, and you would like to evaluate that expression for different sets of v[i] values? If that is an accurate description of your problem then this is one way to do it.
Example expression
ClearAll[v];
y = v[1]*v[2] + v[3]^v[4]
Example sets of v[i] values to use in evaluating y
d1 = {1, 2, 3, 4};
d2 = {4, 3, 2, 1};
Use Replace to substitute values
y /. _[i_] :> d1[[i]]
(* 83 *)
y /. _[i_] :> d2[[i]]
(* 14 *)