擅长:python、mysql、java
<p>问题是<code>q.remove(q[m])</code>,您在迭代列表时正在从列表中删除项</p>
<p>一种解决方案是将所有需要删除的<code>m</code>保存在另一个列表中,并在循环完成后删除它们</p>
<p>或</p>
<p>您可以查看这些链接以获得更好的线索:</p>
<p><a href="https://stackoverflow.com/questions/1207406/how-to-remove-items-from-a-list-while-iterating">How to delete list items while iterating</a></p>
<p><a href="https://codippa.com/how-to-remove-item-from-a-list-while-iterating-in-python/" rel="nofollow noreferrer">Another link</a></p>
<p>你可以理解这一点:</p>
<pre><code>q[:] = [i for i in q if i <= b]
</code></pre>
<p>将这条线而不是for循环放在q上</p>
<p>还请注意:</p>
<pre><code>else:
pass
</code></pre>
<p>是多余的,可以删除</p>