Python Разработка | Web Backend, Парсинг & Telegram Bots. Пайтон программирование с нуля. Django, FastAPI и SQL. Уроки для начинающих и IT карьера. Coding.
Образование · 28 июля 2026 г.
Функция itertools.chain позволяет объединить несколько итерируемых объектов, чтобы рабо... — 28 июля 2026 г. в 06:30:11.371
Функция itertools.chain позволяет объединить несколько итерируемых объектов, чтобы работать с ними, как с единым целым: from itertools import chain print(list(chain(['a', 'b'], range(3), set('xyz')))) # Вывод: ['a', 'b', 0, 1, 2, 'x', 'z', 'y'] Иногда нужно проверить, пуст ли генератор (точнее, исчерпан ли он). Для этого можно попытаться получить следующий элемент с помощью next(). Если элемент есть, его нужно вернуть обратно в генератор, но сделать это напрямую невозможно. Однако можно «приклеить» его обратно с помощью chain: from itertools import chain def sum_of_odd(gen): try: first = next(gen) # Пытаемся получить первый элемент except StopIteration: raise ValueError('Empty generator') # Если генератор пуст, выбрасываем исключение # Используем chain для возврата первого элемента и объединения с остальными return sum( x for x in chain([first], gen) if x % 2 == 1 # Суммируем только нечетные числа ) Пример использования: print(sum_of_odd(x for x in range(1, 6))) # Вывод: 9 (1 + 3 + 5) print(sum_of_odd(x for x in range(2, 3))) # Вывод: 0 (нет нечетных чисел) print(sum_of_odd(x for x in range(2, 2))) # ValueError: Empty generator 👉 @BookPython

