Является ли оценка функции карты Python ленивой? ⇐ Python

Программы на Python
Anonymous
Является ли оценка функции карты Python ленивой?

Сообщение Anonymous »

Я решал задачу LeetCode 1331. Преобразование ранга массива и нашел однострочное решение:

Код: Выделить всё

class Solution:
def arrayRankTransform(self):
return map({e: i for i, e in enumerate(sorted(set(arr)), 1)}.get, arr)
Он оценивает словарь подстановки и сопоставляет с ним все элементы (что-то вроде метода перевода str). Но для этого решения у меня есть вопрос: словарь выполняет оценку только один раз перед циклическим перебором элементов или он выполняет повторную оценку для каждого элемента?
Другими словами, сохраняет ли карта функция перед итерацией или она снова вычисляет функцию для каждого элемента?
Если вы можете ответить, предоставьте ссылку на документацию Python или исходный код

Подробнее здесь: https://stackoverflow.com/questions/790 ... ation-lazy

Вернуться в «Python»