擅长:python、mysql、java
<p>使用列表理解和<code>any()</code>:</p>
<pre><code>[d for d in inputlist if any(d.itervalues())]
</code></pre>
<p>在python3中使用<code>any(d.values())</code>。你知道吗</p>
<p><code>any()</code>仅当输入列表中有任何非空值时返回<code>True</code>。通过使用<code>d.itervalues()</code>,我们测试字典中的最小值数,以证明它们之间存在一个非空值。你知道吗</p>
<p>演示:</p>
<pre><code>>>> inputlist = [{'Key1': 'JJ', 'Key2': 'GG', 'Key3':''}, {'Key1': '', 'Key2': '', 'Key3': ''}, {'Key1': '', 'Key2': 'GG', 'Key3': ''}, {'Key1': '', 'Key2': '', 'Key3': ''}]
>>> [d for d in inputlist if any(d.itervalues())]
[{'Key3': '', 'Key2': 'GG', 'Key1': 'JJ'}, {'Key3': '', 'Key2': 'GG', 'Key1': ''}]
</code></pre>
<p>如果除空字符串以外的任何值<em>也可以测试为false(例如<code>None</code>或<code>0</code>),那么也可以使用显式测试:</p>
<pre><code>[d for d in inputlist if any(v != '' for v in d.itervalues())]
</code></pre>