Я пытаюсь посмотреть, смогу ли я что-нибудь сфотографировать lazy в Python.Dict comprehension, кортежи и ленивая оценка
У меня есть определение dict, где значение является кортежем. Я хочу иметь возможность создать вторую запись кортежа, используя первую запись кортежа.
Примером может служить пример.
dictA = {'a': 1, 'b': 3, 'c': 42}
{key: (a = someComplexFunction(value), moreComplexFunction(a)) for key, value in dictA.items()}
Возможно ли, что moreComplexFunction
использует вычисление в первой записи кортежа?
У вас может быть 'someComplexFunction' реализовать [' lru_cache'] (http://docs.python.org/dev/library/functools.html#functools.lru_cache), тогда вы можете просто вызвать 'moreComplexFunction (someComplexFunction (значение)) 'и не получить удар производительности. Там * есть некоторые накладные расходы в кешировании, и это, вероятно, слишком велико, если вы используете кеш только один раз, поэтому я делаю это комментарием вместо ответа. – roippi