Im Allgemeinen ist der beste Weg, nur zu iterieren. Don't ask for permission (mit if
Kontrollen, sondern wickeln Sie es in einem try-except
Block die „Vergebung“ Fälle für den Umgang.
Wie andere allerdings bemerkt haben, sollten Sie nicht verschiedene Fälle erstellen, wenn X
eine Liste der Größe ist 1
, die noch ist . iterable Wenn Sie zip
verwenden wird es bei der kürzesten iterable stoppen:
>>> l = [1, 2, 3]
>>> y = [1, 2]
>>> list(zip(l, y))
[(1, 1), (2, 2)]
Wenn Sie mit allen Werten der längeren iterable arbeiten müssen und bieten Standardwerte für die fehlenden Werte der kurzgeschlossenen ein, verwenden zip_longest
von itertools mit eine geeignete fillvalue
:
>>> from itertools import zip_longest
>>> list(zip_longest(l, y, fillvalue=0))
[(1, 1), (2, 2), (3, 0)]
https://docs.python.org/3/glossary.html#term-eafp – jonrsharpe
'hasattr (Achsen [0] "__iter __")' oder 'try/except', vielleicht? – jDo
Sie müssen die Länge nicht überprüfen, verwenden Sie einfach 'zip (Achsen [0], X)'. Aber wenn Sie die Spalten erstellen möchten, wenn Sie die Länge der Iterables nicht kennen, verwenden Sie am besten 'itertools.zip_longest()' (wenn Sie alle Elemente länger iterierbar halten möchten), verwenden Sie andernfalls 'zip '. – Kasramvd