<p>我用两个独立的传感器进行了测量。由于某种原因,其中一个传感器在测试过程中坏了,我想创建一个新列表,其中包含<code>sensor1</code>的前五个元素和<code>sensor2</code>的其余元素。我做到这一点的方法很简单:</p>
<pre><code>updated = []
index = 0
while index < len(sensor1):
if index <= 2:
updated.append(sensor1[index])
elif index > 2:
updated.append(sensor2[index])
else:
print('You did something wrong, you ignorant fool!')
index += 1
</code></pre>
<p>但是,为了更习惯Python,我想将其转换为一个名为<code>Updater</code>的函数</p>
<pre><code>def Updater(one, two, divide):
updated = []
index = 0
while index < len(one):
if index <= divide:
updated.append(one[index])
elif index > divide:
updated.append(two[index])
else:
print('You did something stupid, you ignorant fool!')
index += 1
return updated
</code></pre>
<p>我打电话过来</p>
<pre><code>data = Updater(one=sensor1, two=sensor2, divide=4)
</code></pre>
<p>或者</p>
<pre><code>data = [Updater(a, b, divide=4) for a, b in zip(sensor1, sensor2)]
</code></pre>
<p>唉,<code>Updater</code>不起作用,因为它只执行第一次迭代,所以<code>index</code>等于<code>1</code>,尽管它应该等于<code>13</code>,也就是<code>sensor1</code>和<code>sensor2</code>的长度。你知道吗</p>
<ul>
<li>我做错什么了?你知道吗</li>
<li>如何使这段特定的代码在函数中工作?你知道吗</li>
</ul>