擅长:python、mysql、java
<p>您的<code>i += 2</code>没有任何有用的效果,因为<code>for</code>循环将<code>i</code>设置为范围内的下一个值</p>
<p>您可以自己将范围转换为迭代器,这样您就可以访问它,并在<code>'X'</code>之后丢弃接下来的两个索引,从而使其工作:</p>
<pre><code>arr = 'XYXXXXXYX'
count = 0
indexes = iter(range(len(arr)))
for i in indexes:
if arr[i] == 'X':
count += 1
next(indexes, None)
next(indexes, None)
print(count)
</code></pre>
<p>尽管非索引版本更简单、更清晰:</p>
<pre><code>arr = 'XYXXXXXYX'
count = 0
letters = iter(arr)
for letter in letters:
if letter == 'X':
count += 1
next(letters, None)
next(letters, None)
print(count)
</code></pre>