Вы можете использовать itertools.zip_longest
:
import itertools
np.array(list(itertools.zip_longest(a_list, b_list, c_list, fillvalue='null'))).T
array([['h', 'i', 'null', 'null', 'null'],
['t', 'h', 'e', 'r', 'e'],
['fr', 'ie', 'nd', 'null', 'null']],
dtype='<U4')
Редактировать : В соответствии с вашим комментарием о том, что вы хотите добавить новые списки в свой массив, вероятно, будет проще создать список списков, которые вы хотите использовать, и вы можете добавить в этот список несколько динамично:
a_list = ['h','i']
b_list = ['t','h','e','r','e']
c_list = ['fr', 'ie','nd']
my_list = [a_list, b_list, c_list]
my_arr = np.array(list(itertools.zip_longest(*my_list, fillvalue='null'))).T
>>> my_arr
array([['h', 'i', 'null', 'null', 'null'],
['t', 'h', 'e', 'r', 'e'],
['fr', 'ie', 'nd', 'null', 'null']],
dtype='<U4')
Затем вы можете добавить новый список в my_list
:
d_list = ['x']
my_list.append(d_list)
my_arr = np.array(list(itertools.zip_longest(*my_list, fillvalue='null'))).T
>>> my_arr
array([['h', 'i', 'null', 'null', 'null'],
['t', 'h', 'e', 'r', 'e'],
['fr', 'ie', 'nd', 'null', 'null'],
['x', 'null', 'null', 'null', 'null']],
dtype='<U4')