Обучающий курс: stepik.org/course/100707 Знакомимся с функцией map. Работа функции изнутри. Примеры ее использования. Лямбда-функции совместно с функцией map. Telegram-канал: t.me/python_selfedu
Все отлично, но одно дополнение: map работает с функциями с несколькими аргументами тоже, главное чтобы хватало итераторов (аргументов map после функции через запятую), причем тогда map будет работать до конца самого короткого по числу итераций итератора, пример: для функции с двумя аргументами map(func,range(10),range(5)) так вот в func (в качестве двух ее аргументов) последовательно будут подаваться числа от 0 до 4 (так как мин кол итераций 5)
Спасибо за ваши видео, очень наглядно и доступно. Залип на несколько часов с удовольствием, хотя вроде просто зашел освежить память на конкретную тему.
Наконец-то пришло время познать что же это за зверь такой map, который преследовал нас на протяжении всего курса. Строчка a = list(map(int, input().split())) - навсегда в моем сердце
В реальных програмах map работает както странно создает на жёстком диске какуюту информацию .cache, работает очень долго, но при повторном вызеве использует этот cache. а иногда и вовсе застривает на пол пути выполнения. Работает с очень разной скоростью в зависимости от python версии. Пожалуйста объясните это...
@@selfedu_rus что вы врете и вводите в заблуждение? range это не генератор. Это объект типа Генератор (точнее итератор) из него делает map наподобие такого iter(range(..))
@@eugenedukatta9355этот объект не хранит значения арифметической прогрессии, а генерирует их по ходу выполнения (перебора), поэтому range() также называют генератором арифметической прогрессии.
@@selfedu_rus "этот объект не хранит значения арифметической прогрессии" да неужели? а пробовали к range обращаться по индексу, делать срезы, ,брать длину len() ? И пробовали брать next() от range ? Попробуйте и посмотрите что вам интерпретатор напишет. range это скорее целочисленный список.
@@mantrida Насколько я понимаю, генератор - это любой объект, который не хранит в памяти значения, а формирует их по ходу вызова функции next(), то есть, генерирует значения. Поправьте, если не прав.
@@selfedu_rus ну фиг знает )) Очень широкое определение. В моём понимании генератор (функция-генератор) - это функция, которая содержит выражение yield. На этом всё, точка : )) А формировать значения по нексту, не храня в памяти, можно и без использования yield. Например import random class A: def __next__(self): return random.random() Но разве это генератор ?