擅长:python、mysql、java
<p>首先检查并找出需要删除的内容:</p>
<pre><code>remove_ix = {ix for ix, val in enumerate(x) if val is None}
</code></pre>
<p>现在可以用它来过滤<code>x</code>和<code>y</code>:</p>
<pre><code>x = [item for ix, item in enumerate(x) if ix not in remove_ix]
y = [item for ix, item in enumerate(y) if ix not in remove_ix]
</code></pre>
<hr/>
<p>请注意,在您的版本中,您将跳过索引并可能拥有<code>IndexError</code>,因为如果列表的初始长度是<code>N</code>,并且您删除了一个项目,那么您仍然会循环<code>N</code>次,但是列表现在是<code>N-1</code>个项目。同样使用<code>list.remove</code>,如果存在重复项(在您的示例中有重复项),则不能保证您正在删除<em>正确的</em>项</p>