Gibt es eine integrierte Funktion, die wie zip()
folgt funktioniert, aber die Ergebnisse auffüllt, sodass die Länge der resultierenden Liste eher der Länge der längsten Eingabe als der kürzesten Eingabe entspricht?
>>> 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
ist sowieso ein eingebautes C-Modul.Verwenden Sie für Python 2.6x
itertools
Moduleizip_longest
.Verwenden Sie
zip_longest
stattdessen Python 3 (kein führendesi
).quelle
six.moves.zip_longest
stattdessen verwenden.Nicht-Itertools Python 3-Lösung:
quelle
non itertools Meine Python 2-Lösung:
quelle
Ich benutze ein 2d Array, aber das Konzept ist das gleiche mit Python 2.x:
quelle