擅长:python、mysql、java
<p>您需要>;k:</p>
<pre><code> while len(items) > k:
</code></pre>
<p>错误之前的最后一个值项是<code>[1, 2]</code>所以<code>items[2]-> IndexError</code>,因为您正试图索引两个元素列表的第三个元素。在</p>
^{pr2}$
<p>输出:</p>
<pre><code>In [27]: josephus([1,2,3,4,5,6,7,8,9,10],2)
Out[27]: [1, 2]
</code></pre>
<p>如果要2表示第二个索引,则需要从k开始-1:</p>
<pre><code>def josephus(items, k):
while len(items) >= k:
del items[k-1]
return items
</code></pre>
<p>现在您将得到一个元素:</p>
<pre><code>In [29]: josephus([1,2,3,4,5,6,7,8,9,10],2)
Out[29]: [1]
</code></pre>
<p>要删除<code>k'th</code>元素:</p>
<pre><code>def josephus(items, k):
if 0 <= k < len(items):
del items[k]
return items
</code></pre>