擅长:python、mysql、java
<p>试试这个:</p>
<pre><code>list1 = [{'l1k1': 'l1v1', 'l1k2': 'l1v2'}, {'l2k1': 'l2v1', 'l2k2': ''}]
list2 = [{ k: v for k, v in d.items() if v and v.strip() } for d in list1]
</code></pre>
<p>注意,这里要做的<em>正确的</em>检查是<code>v and v.strip()</code>,它确保字符串不是<code>None</code>,也不是所有的空格。它按预期工作:</p>
^{pr2}$
<p>它是高效的,因为它使用列表理解和字典理解,这比显式循环更快。而且,它非常简洁和惯用:)</p>