Page 263 - Bkhargava_-_Grokaem_algoritmy
P. 263
262 Глава 11. Что дальше?
/1\2\зl4ls)
!J, j, !J,
[2\4\ь\~\н~\
Массив arr2 теперь содержит значения [2, 4, б, 8, 10) - все элементы
arrl увеличились вдвое! Удвоение выполняется достаточно быстро. Но
представьте, что выполнение применяемой функции требует больше вре
мени. Взгляните на следующий псевдокод:
>>> arrl = # Список URL
>>> arr2 = map(download_page, arrl)
Имеется список URL-aдpecoв, нужно загрузить каждую страниuу и сохра
нить содержимое в arr2. Для каждого адреса загрузка занимает пару секунд.
Для 1000 адресов потребуется пара часов! А теперь представьте, что у вас
имеется 100 машин и map автоматически распределяет работу между ними.
Тогда в любой момент будут загружаться сразу 100 страниц одновременно,
и работа пойдет намного быстрее!
Функция reduce
Функция reduce иногда сбивает людей с толку. Идея заключается в том, что
весь список элементов «сокращается~ до одного элемента. Напомню, что
функция map переходит от одного массива к другому.
/1\2\з/4\s)
! J, j, J,J.
[2\4\ь\~\н~\
С функцией reduce массив преобразуется в один элемент.
www.trk.kg