Python-совет: как объединить списки разной длины и не потерять данные… — Python Community — TG.ME

🐍 Python-совет: как объединить списки разной длины и не потерять данные

Обычный zip() останавливается на самом коротком списке:


numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c"]

print(list(zip(numbers, letters)))
# [(1, 'a'), (2, 'b'), (3, 'c')]


Элементы 4 и 5 просто исчезнут. Чтобы сохранить их, используйте zip_longest():


from itertools import zip_longest

result = zip_longest(
numbers,
letters,
fillvalue="нет значения",
)

print(list(result))


Результат:


[
(1, "a"),
(2, "b"),
(3, "c"),
(4, "нет значения"),
(5, "нет значения"),
]


А когда списки обязаны иметь одинаковую длину, в Python 3.10+ лучше включить проверку:


zip(numbers, letters, strict=True)


Вместо тихой потери данных Python сразу выбросит ValueError.

Полезно при обработке таблиц, CSV, результатов API и параллельных наборов данных.

#Python #Programming #PythonTips

@Python_Community_ru
July 31, 2026 563 2