Вы можете использовать zip_longest
.
from itertools import zip_longest
def pad(*lists, padding=None):
padded = [[] for _ in lists]
for lst in zip_longest(*lists, fillvalue=padding):
for i, elem in enumerate(lst):
padded[i].append(elem)
return padded
test1 = [1, 2]
test2 = [1, 2, 3, 4]
test3 = [1, 2, 5, 8]
test1, test2, test3 = pad(test1, test2, test3)
print(test1, test2, test3)
Это работает с любым количеством списков. zip_longest
объединяет переменное количество итераций в одну итерацию, дополненную до длины самой длинной итерации.