擅长:python、mysql、java
<p>当然它行不通:以i=2,x=6为例,6不是素数,如果你去掉它。在</p>
<p>在i,i=3的下一次迭代中,您再次遇到x=6,并再次尝试删除它!所以你得到了一个错误:列表.删除(x) :x不在列表中。在</p>
<p><strong>当然还有最重要的一点:你不能改变你正在迭代的列表!当您从列表中删除项x时,您的下一次迭代将无效,列表将被破坏!</strong></p>
<p>如果询问x是否仍在pnumber1b中,请尝试添加其他内容:</p>
<pre><code>pnumber1b = list(range(3, 101))
pnumber1a = list(range(3, 101))
for x in pnumber1b:
for i in range(2, x):
if x % i == 0:
if x in pnumber1a:
pnumber1a.remove(x)
break
else:
continue
print(pnumber1a)
</code></pre>
<p>或者只需在remove命令后添加break,因为不需要在数字x上继续运行</p>
^{pr2}$