Number elements in a list

list = {{{"a", "b", "c"}, {"d", "e", "f"}, {"g", "h", "i"}}};
Map[MapIndexed[First@#2 -> #1 &], #, {2}] &@list

(* Out: {{{1 -> "a", 2 -> "b", 3 -> "c"}, {1 -> "d", 2 -> "e", 3 -> "f"},
        {1 -> "g", 2 -> "h", 3 -> "i"}}} *)

list = {{{"a", "b", "c"}, {"d", "e", "f"}, {"g", "h", "i"}}};


Apply[Rule, Map[Transpose[{Range@3, #}] &, list, {2}], {3}]

enter image description here

Or, more generally

num[v_] := Thread[Range@Length@v -> v]

num /@ Catenate@list

Or

Normal @ Map[PositionIndex, list, {2}] /. (a_ -> {b_}) :> b -> a

MapIndexed[#2[[3]] -> #1 &, list, {3}]

{{{1 -> "a", 2 -> "b", 3 -> "c"}, {1 -> "d", 2 -> "e", 3 -> "f"}, {1 -> "g", 2 -> "h", 3 -> "i"}}}

Original answer

Map[Thread[Range@Length@# -> #] &, list, {2}]

 

MapIndexed[#2[[3]] -> #1 &, list, {3}] == 
Map[Thread[Range@Length@# -> #] &, list, {2}] == listMod

True