I'm a bit sad nobody thought to use `MapIndexed[]`: MapIndexed[With[{k = #2[[1]]}, If[Mod[k, 3] == 1, "string" <> ToString[k], #]] &, Range[9]] {"string1", 2, 3, "string4", 5, 6, "string7", 8, 9}