擅长:python、mysql、java
<p>您已更改列表组件版本中的逻辑。最初,您的<code>else</code>公式如下所示:</p>
<pre><code>data[i] + adstock_rate * adstocked_advertising[i-1]
</code></pre>
<p>但列表理解版本如下:</p>
<pre><code>data[i] + adstock_rate * data[i-1]
</code></pre>
<p>第一个版本访问<em>结果</em>列表的<code>i-1</code>元素,而第二个版本访问<em>输入</em>列表的<code>i-1</code>元素。你知道吗</p>
<p><code>index == 0</code>在列表的开头只有一次为真。为什么不消除条件:</p>
<pre><code>def adstocked_advertising(data, adstock_rate):
if data:
res = [data[0]]
for i in range(1, len(data)):
res.append(data[i] + adstock_rate * res[i-1])
return res
</code></pre>