Упаковка по более длинной последовательности
Если последовательности имеют неодинаковую длину, zip()
ограничивается самой короткой:
>>> list(zip(range(0, 10), range(0, 5)))
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
Но такое сокращение может быть неудобно из-за потери информации. Чтобы сохранить обе последовательности, используйте itertools.zip_longest()
:
for (i, j) in itertools.zip_longest(range(0, 10), range(0, 5)):
print(i, j)
0 0
1 1
2 2
3 3
4 4
5 None
6 None
7 None
8 None
9 None
Вместо None
функция может подставлять значение, переданное аргументу fillvalue
.