Some ideas:
Partition[Riffle[color, ind, {2, -1, 2}], 2]
Flatten[{color, ind}, {2}] // Cases[{_, _}]
{color, PadRight[ind, Length@color]}\[Transpose]
ind ~Riffle~ color ~Partition~ 2 ~Reverse~ 2
MapIndexed[{#, Extract[ind, #2]} &, color]
Take[#, All, Min[Length /@ #]]\[Transpose] &[{color, ind}]
All produce:
{{"red", 0}, {"green", 1}, {"blue", 2}, {"black", 3}}
I'll note that the last method, which was perhaps my most serious attempt to answer this pragmatically, can be applied to any number of lists:
fn = Take[#, All, Min[Length /@ #]]\[Transpose] &;
fn[{{1, 2, 3}, Alphabet[], 2^Range@5}]
{{1, "a", 2}, {2, "b", 4}, {3, "c", 8}}
Transpose
. $\endgroup$Transpose[{color, Take[ind, Length[color]]}
. $\endgroup$zip
function in Python. $\endgroup$