Например:
Transpose@Append[Transpose@array, column]
Вы также можете сделать такую функцию, например:
subListAppend = Transpose@Append[Transpose@#1, #2] &;
subListAppend[array, column]
, которая облегчает, если вам приходится часто ее использовать.И, конечно, если вы хотите вставить в любое место, кроме конца, вы можете использовать Insert[]
.
subListInsert = Transpose@Insert[Transpose@#1, #2, #3] &;
subListInsert[array, column, 2]
--> {{a, x, 1, 2}, {b, y, 2, 3}, {c, z, 3, 4}}
РЕДАКТИРОВАТЬ: Поскольку обсуждение обязательной оптимизации скорости началось, вот некоторые результаты с использованием это и массив 10000x200:
ArrayFlatten@{{array, List /@ column}}: 0.020 s
Transpose@Append[Transpose@array, column]: 0.067 s
MapThread[Append, {array, column}]: 0.083 s
MapThread[Insert[#1, #2, 4] &, {array, column}]: 0.095 s
Map[Flatten, Flatten[{array, column}, {2}]]: 0.26 s
ConstantArray based solution: 0.29 s
Partition[Flatten@Transpose[{array, column}], 4]: 0.48 s
И победитель - ArrayFlatten
!