<p>使用<a href="http://docs.python.org/3.2/tutorial/datastructures.html#list-comprehensions" rel="nofollow">list comprehension</a>根据<a href="http://docs.python.org/3.3/library/stdtypes.html#dict.values" rel="nofollow">^{<cd1>}</a>*返回的内容筛选键:</p>
<pre><code>>>> dct = [{'Key1':'JJ', 'Key2':'GG', 'Key3':''},{'Key1':'', 'Key2':'', 'Key3':''},{'Key1':'',
'Key2':'GG', 'Key3':''},{'Key1':'', 'Key2':'', 'Key3':''}]
>>> [x for x in dct if any(y != '' for y in x.values())]
[{'Key3': '', 'Key2': 'GG', 'Key1': 'JJ'}, {'Key3': '', 'Key2': 'GG', 'Key1': ''}]
>>>
</code></pre>
<hr/>
<p>或者,如果值都是字符串,则可以执行以下操作:</p>
<pre><code>>>> dct = [{'Key1':'JJ', 'Key2':'GG', 'Key3':''},{'Key1':'', 'Key2':'', 'Key3':''},{'Key1':'',
'Key2':'GG', 'Key3':''},{'Key1':'', 'Key2':'', 'Key3':''}]
>>> [x for x in dct if any(x.values())]
[{'Key3': '', 'Key2': 'GG', 'Key1': 'JJ'}, {'Key3': '', 'Key2': 'GG', 'Key1': ''}]
>>>
</code></pre>
<p>这是因为在Python中空字符串的计算结果是<code>False</code>。你知道吗</p>
<hr/>
<p>*注意:如果您使用的是python2.x,那么应该使用<a href="http://docs.python.org/2.7/library/stdtypes.html#dict.itervalues" rel="nofollow">^{<cd3>}</a>代替<code>dict.values</code>。它更有效,因为它返回一个迭代器而不是一个列表。你知道吗</p>