В словарном включении выражения ключа и значения имеют побочные эффекты. Какой порядок их вычисления гарантирован в Python 3.8 и новее?
База Hintsage
Коллекции и итераторы
Коллекции, comprehensions, iterators и generators.
Практика
Вопросы: Коллекции и итераторы
Определите вывод программы и объясните, в какой точке генератора обрабатывается исключение, переданное через throw().
def worker():
try:
yield "готов"
except ValueError as error:
yield f"обработано: {error}"
yield "завершение"
generator = worker()
print(next(generator))
print(generator.throw(ValueError("ошибка")))
print(next(generator))
Можно ли полагаться на порядок элементов при обходе множества в Python?
От чего зависит, можно ли использовать объект ключом словаря, и почему изменение такого объекта после вставки может нарушить корректность поиска?
В генераторе вспомогательная функция поднимает StopIteration. Какое исключение увидит потребитель?
Сервис сопоставляет записи из двух источников и должен обнаружить рассинхронизацию длин. Как завершится выполнение этого кода?
left = [101, 102, 103]
right = ["ok", "retry"]
pairs = zip(left, right, strict=True)
try:
print(list(pairs))
except ValueError as error:
print(type(error).__name__)
После создания итератора списка в него добавили элементы. Увидит ли итератор эти элементы при продолжении обхода?
Почему itertools.groupby может создать несколько групп с одним ключом при обработке последовательности?
Как встроенная функция next с запасным значением меняет сигнализацию конца итератора и почему это важно при обработке данных?
Разберите последствие: что произойдёт при закрытии генератора, если его блок finally пытается выполнить yield?
Как цикл for отличает штатное завершение итератора от StopIteration, возникшего в теле цикла?
От чего зависит объём внутреннего буфера itertools.tee при разной скорости потребителей одного итератора?
Сравните область видимости переменной цикла и имени, присвоенного оператором присваивания внутри comprehension.
После вызова функции, содержащей yield, какие действия её тела выполнены до первого получения элемента?
Генератор пытается получить следующий элемент у самого себя во время собственного выполнения. Как Python завершит такую попытку?
В set comprehension два разных объекта имеют одинаковый хэш и сравниваются как равные. Сколько элементов окажется в результате?
Представьте итератор, который однажды сообщил об окончании обхода. Что обязан возвращать его следующий вызов __next__()?
Что объясняет ошибку при попытке получить длину объекта map через len?
После приостановки внешнего генератора на yield from обычного списка ему передали ненулевое значение через send(). Что произойдёт с этим значением?
Представьте потоковый источник: почему выборка через itertools.islice не позволяет пропустить элементы без их фактического потребления?
Показано 21–40 из 48