Existe uma função interna que funcione como zip()
mas que irá preencher os resultados para que o comprimento da lista resultante seja o comprimento da entrada mais longa e não da entrada mais curta ?
>>> 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
é um módulo C embutido de qualquer maneira.Para o Python 2.6x, use os
itertools
módulosizip_longest
.Para Python 3, use
zip_longest
(sem avançoi
).fonte
six.moves.zip_longest
.solução Python 3 não itertools:
fonte
Minha solução Python 2:
fonte
Estou usando uma matriz 2D, mas o conceito é semelhante usando python 2.x:
fonte