python解释器在评估列表连接时是否使用任何形式的缓存?

时间:2016-01-05 19:26:10

标签: python

我想知道编写以下内容是否安全

from math import e
values = [e ** x for x in range(-10,+11)]
normalized_values = [value/sum(values) for value in values]

或者我应该预先计算sum(values)并将其存储在变量中吗?

1 个答案:

答案 0 :(得分:6)

没有缓存完成。每次重新评估目标表达式(在这种情况下为value/sum(values))。如果你想预先计算它的某些部分,你需要按照你所描述的那样自己做。