Existe-t-il une fonction intégrée qui fonctionne comme zip()
mais qui remplira les résultats de sorte que la longueur de la liste résultante soit la longueur de l' entrée la plus longue plutôt que celle de l' entrée la plus courte ?
>>> 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
est de toute façon un module C intégré.Pour Python 2.6x, utilisez les
itertools
modulesizip_longest
.Pour Python 3, utilisez à la
zip_longest
place (pas de débuti
).la source
six.moves.zip_longest
place.solution Python 3 non itertools:
la source
non itertools Ma solution Python 2:
la source
J'utilise un tableau 2D mais le concept est le même en utilisant python 2.x:
la source