Будут напечатаны True, True, False. map — одноразовый итератор, и каждая проверка in потребляет его до найденного значения или до конца.
Определение наличия элементов в объекте map
Будут напечатаны True, True, False. map — одноразовый итератор, и каждая проверка in потребляет его до найденного значения или до конца.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Какой вывод получит программа ниже? Пример иллюстрирует проверку присутствия конкретных значений в объекте map, полученном при помощи функции map.
seq = map(abs, [1, 2, -3, -4, 5, -9])
print(4 in seq)
print(5 in seq)
print(2 in seq)
Ответ
Будут напечатаны True, True, False. map — одноразовый итератор, и каждая проверка in потребляет его до найденного значения или до конца.
Первая проверка проходит значения 1, 2, 3, 4 и останавливается на 4. Вторая продолжает с текущей позиции и сразу находит 5. Третья видит только оставшееся 9, затем конец, поэтому 2 уже недоступно.
True
True
False
Для независимых многократных проверок материализуйте значения в list или set заранее. Это требует памяти, но не меняет позицию обхода при каждом поиске. abs преобразует отрицательные исходные числа до сравнения.