擅长:python、mysql、java
<p>不是一行,而是简洁、可读、完全惯用的Python:</p>
<pre><code>for indx in d:
for x in a, b, c:
del x[indx]
</code></pre>
<p>然而,事实上,你这样做首先意味着也许不是3个单独的列表变量,你应该有一个由3个列表组成的列表,或者一个由三个列表组成的dict,它们的名字分别是<code>'a'</code>、<code>'b'</code>和<code>'c'</code>。你知道吗</p>
<hr/>
<p>如果你真的想把它放在一行:</p>
<pre><code>for indx in d: a.pop(indx), b.pop(indx), c.pop(indx)
</code></pre>
<p>但那真的很可怕。当您不关心值时,您正在调用<code>pop</code>,并建立一个您不需要的<code>tuple</code>。你知道吗</p>
<p>如果你想玩代码高尔夫,你可以通过使用一个列表来保存几个字符,这会增加一个语言滥用,并构建另一个你实际上不想要的更大的对象,就像Ioan Alexandru Cucu的回答:</p>
<pre><code>[x.pop(indx) for indx in d for x in a, b, c]
</code></pre>
<hr/>
<p>当然,把它写在一行的最好方法是把它分解成一个函数:</p>
<pre><code>def delemall(indices, *lists):
for index in indices:
for x in lists:
del x[indx]
</code></pre>
<p>现在,你需要做的300次中的每一次,只是:</p>
<pre><code>delemall(d, a, b, c)
</code></pre>