Когда я должен использовать карту вместо цикла For?

Это относится к следующему: (в коде Python)

for i in object:
     doSomething(i)

против

map(doSomething, object)

И то, и другое легко понять, и кратко, но есть ли разница в скорости? Теперь, если бы doSomething имел возвращаемое значение, нам нужно было проверить, что оно будет возвращено в виде списка с карты, и в цикле for мы могли бы либо создать наш собственный список, либо проверять по одному за раз.

for i in object:
     returnValue = doSomething(i)
     doSomethingWithReturnValue(returnValue)

против

returnValue = map(doSomething, object)
map(doSomethingWithReturnValue, returnValue)

Теперь я чувствую, что они немного расходятся. Две функции doSomethingWithReturnValue могут различаться в зависимости от того, проверяют ли они их «на лету» во время прохождения цикла или если проверка их всех сразу в конце дает разные результаты. Также кажется, что цикл for будет всегда работать, может быть медленнее, когда карта будет работать только при определенных сценариях. Конечно, мы могли бы сделать искажения, чтобы заставить любую работу, но весь смысл состоит в том, чтобы избежать этого типа работы.

То, что я ищу, - это сценарий, в котором функция отображения действительно великолепна по сравнению с хорошо выполненным циклом производительности, удобочитаемости, удобства обслуживания или скорости реализации. Если ответ на этот вопрос на самом деле не большой разницы, то я хотел бы знать, когда на практике люди используют то или иное или действительно ли они абсолютно произвольны и установлены стандартами кодирования в зависимости от вашего учреждения.

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос