擅长:python、mysql、java
<p>您可以使用<code>iter</code>和<code>zip</code>:</p>
<pre><code>list1 = [1,2,3,4,5,6,7,8,9,10]
it = iter(list1)
print([a + b for a,b in zip(it,it)])
[3, 7, 11, 15, 19]
</code></pre>
<p>iter创建了一个迭代器,一旦您从迭代器中消费了一个元素,t就消失了,您将得到下一个元素:</p>
^{pr2}$
<p>所以<code>zip(it,it)</code>基本上是调用<code>next(it),next(it)</code>,直到迭代器用尽,剩下的是连续的元素对。它还避免了创建两个新的列表,如果你切片的话。在</p>
<p>如果需要循环,请使用起始索引为1的enumerate,并在每次第i个索引被2整除时追加并重置一个<code>sm</code>变量:</p>
<pre><code>sm = 0
out = []
for i, ele in enumerate(list1, 1):
sm += ele
if i % 2 == 0:
out.append(sm)
sm = 0
print(out)
[3, 7, 11, 15, 19]
</code></pre>