Обычно, когда нужно обработать и преобразовывать все элементы в итерируемом объекте, первое, что напрашивается, это цикл
for.Но у
for есть несколько недостатков, которых можно избежать, используя map():1. Поскольку
map() написан на C и сильно оптимизирован, его внутренний подразумеваемый цикл более эффективен, чем обычный цикл for.2. Второе преимущество использования
map() — потребление памяти. С помощью for вам нужно сохранить весь список. А map() вы получаете элементы по запросу, и только один элемент находится в памяти в данный момент.То есть
map() полезен, когда вам нужно применить функцию преобразования к каждому элементу в коллекции или в массиве и преобразовать их в новый массив. Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:def add_three(x): return x + 3li = [1,2,3]list(map(add_three, li))#=> [4, 5, 6]Например, здесь к каждому элементу в списке мы добавляем число 3.
#собеседование