zip() может незаметно «съесть» часть данных, если списки разной длины. 🐍Например:
x = [1, 2, 3, 4, 5]
y = ['a', 'b', 'c']
list(zip(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c')]
zip() останавливается, как только заканчивается самый короткий список — поэтому 4 и 5 просто не попадут в результат.Если нужно сохранить все элементы, есть
itertools.zip_longest():import itertools
list(itertools.zip_longest(x, y))
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, None), (5, None)]
Недостающие значения он по умолчанию заполняет
None.Небольшая штука, но полезно помнить, когда объединяете данные из источников разной длины.
👉 @PythonPortal
