Это относится к следующему: (в коде 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 всегда будет работать, возможно, медленнее, когда карта будет работать только в определенных сценариях. Конечно, мы могли бы сделать изгибы, чтобы сделать любую работу, но все дело в том, чтобы избежать этого типа работы.
То, что я ищу, - это сценарий, в котором функция сопоставления по-настоящему сияет по сравнению с хорошо выполненной для цикла производительности, удобочитаемости, ремонтопригодности или скорости реализации. Если ответ действительно не имеет большого значения, я бы хотел знать, когда на практике люди используют тот или иной, или если он действительно полностью произволен и устанавливается стандартами кодирования в зависимости от вашего учреждения.
Спасибо!