При объединении итерируемых объектов разной длины используй
itertools.zip_longest() вместо zip(), чтобы все элементы были объединены в пары.zip() объединяет элементы, пока один из итерируемых не закончится:>>> list(zip(letters, numbers))
[('a', 1), ('b', 2)]
zip_longest() продолжает объединение до конца самого длинного итерируемого объекта:>>> list(zip_longest(letters, numbers))
[('a', 1), ('b', 2), ('c', None)]
fillvalue позволяет указать значение-заполнитель для отсутствующих элементов:>>> list(zip_longest(letters, numbers, fillvalue='N/A'))
[('a', 1), ('b', 2), ('c', 'N/A')]
Используй
zip_longest, когда важно сохранить все данные, даже при разной длине итерируемых объектов 🤵👉 @PythonPortal
