擅长:python、mysql、java
<p>您需要引用列表中先前生成的元素,而列表理解并不适合这种类型的问题。对于只需要一次查看单个元素的操作,它们工作得很好。
<a href="https://stackoverflow.com/questions/794774/python-list-comprehension-access-last-created-element">This question</a>更详细。你知道吗</p>
<p>在最初的示例中,使用<code>adstock_rate * adstocked_advertising[i-1]</code>。列表理解版本使用<code>adstock_rate * data[i-1]</code>,这就是为什么会得到不同的结果。你知道吗</p>
<p>循环的标准对于您的用例来说很好。您可以切换到使用enumerate,因为不鼓励使用<code>for i in range(len(data))</code>。你知道吗</p>
<pre><code>if data:
res = [data[0]]
for index, item in enumerate(data[1:]):
results.append(item + rate * data[index-1])
</code></pre>