¿Existe una función incorporada que funcione zip()
pero que rellene los resultados para que la longitud de la lista resultante sea la longitud de la entrada más larga en lugar de la más corta ?
>>> 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
es un módulo C incorporado de todos modos.Para Python 2.6x, use los
itertools
módulosizip_longest
.Para Python 3, use
zip_longest
en su lugar (sin encabezadoi
).fuente
six.moves.zip_longest
.Solución no itertools Python 3:
fuente
Solución no itertools My Python 2:
fuente
Estoy usando una matriz 2d pero el concepto es similar al uso de python 2.x:
fuente