Есть ли встроенная функция, которая работает как, zip()
но которая будет дополнять результаты так, чтобы длина результирующего списка была длиной самого длинного ввода, а не самого короткого ввода?
>>> a = ['a1']
>>> b = ['b1', 'b2', 'b3']
>>> c = ['c1', 'c2']
>>> zip(a, b, c)
[('a1', 'b1', 'c1')]
>>> What command goes here?
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
itertools
в любом случае это встроенный модуль CДля Python 2.6x используйте
itertools
модулиizip_longest
.Для Python 3 используйте
zip_longest
вместо этого (без ведущихi
).источник
six.moves.zip_longest
вместо этого.Решение, отличное от itertools Python 3:
источник
Решение, не относящееся к itertools My Python 2:
источник
Я использую 2d массив, но концепция похожа на Python 2.x:
источник