Riffle
Riffle[Range[10], CharacterRange["a", "j"]]
{1, "a", 2, "b", 3, "c", 4, "d", 5, "e", 6, "f", 7, "g", 8, "h", 9, "i", 10, "j"}
Transpose
Flatten
Flatten@Transpose@{Range[10], CharacterRange["a", "j"]}
{1, "a", 2, "b", 3, "c", 4, "d", 5, "e", 6, "f", 7, "g", 8, "h", 9, "i", 10, "j"}
Flatten
(Thanks @J.M.)
Flatten[{Range[10], CharacterRange["a", "j"]}, {{2, 1}}]
Beware of the behaviour of Riffle
if the lists are not the same length.
Riffle[Range[10], CharacterRange["a", "z"]]
{1, "a", 2, "b", 3, "c", 4, "d", 5, "e", 6, "f", 7, "g", 8, "h", 9, "i", 10}
Performances
First@RepeatedTiming[
Riffle[Range[999], CharacterRange[1, 999]]
, 9]
(* 0.00060 *)
First@RepeatedTiming[
Flatten@Transpose@{Range[999], CharacterRange[1, 999]}
, 9]
(* 0.00076 *)
First@RepeatedTiming[
Flatten[{Range[999], CharacterRange[1, 999]}, {{2, 1}}]
, 9]
(* 0.00065 *)
Riffle[fi, fv]
. $\endgroup$Export["file.csv",Transpose@{fi, fv}]
makes more sense. $\endgroup$