← Все вопросы
Как пройти по двум спискам параллельно, если они разной длины?
14
zip() знаю, но он обрезает по короткому списку. А мне нужно пройтись до конца длинного, чтобы недостающие значения заполнялись чем-то по умолчанию. Как?
2 ответа
19
Есть itertools.zip_longest — он идёт до конца самого длинного, а недостающее заполняет fillvalue:
from itertools import zip_longest
a = [1, 2, 3, 4]
b = ['x', 'y']
for num, letter in zip_longest(a, b, fillvalue='-'):
print(num, letter)
# 1 x
# 2 y
# 3 -
# 4 -
Обычный zip остановился бы после двух пар.
Андрей Соколов то что нужно, про zip_longest даже не знал · 10 месяцев назад
7
itertools.zip_longest(a, b, fillvalue=0).
Ваш ответ
Войдите, чтобы ответить на вопрос.