Уравнять длину вложенных списков

Имеется список со вложенными списками разной длинны:

arr = [['1', '2', '3', '4', '5'], ['1', '2'], ['1', '2', '3', '4']]

Помогите пожалуйста справиться с задачей: Нужно все вложенные списки нужно "нарастить" до одной длины, чтобы len(вложенного списка) == 5. И на выходе получить такой результат:

arr = [['1', '2', '3', '4', '5', '0'], ['1', '2', '0', '0', '0', '0'], ['1', '2', '3', '4', '0', '0']]

Спасибо.


Ответы (2 шт):

Автор решения: nchistov

Я написал код на Python, но здесь приведу общюю идею:

for элемент in список:
    if длина элемента < 5:
        элемент += '0' * (5 - длина элемента) # в Python: element += ['0'] * (5 - len(element))
→ Ссылка
Автор решения: wchistow

Есть функция itertools.zip_longest:

from itertools import zip_longest

arr = [['1', '2', '3', '4', '5'], ['1', '2'], ['1', '2', '3', '4']]

print(list(map(list, zip(*zip_longest(*arr, fillvalue='_')))))

Правда, этот код будет дополнять вложенные списки до длинны самого длинного, но в вашем случае работает:

[['1', '2', '3', '4', '5'], ['1', '2', '_', '_', '_'], ['1', '2', '3', '4', '_']]
→ Ссылка