<p>我有下列词典</p>
<pre><code>dict1 ={"city":"","name":"yass","region":"","zipcode":"",
"phone":"","address":"","tehsil":"", "planet":"mars"}
</code></pre>
<p>我正在尝试创建一个新的字典,它将基于dict1,但是</p>
<ol>
<li>它将不包含带有空字符串的键。</li>
<li>它不会包含那些我不想包含的密钥。</li>
</ol>
<p>我已经能够满足要求2,但得到的问题与要求1。这是我的代码。</p>
<pre><code>dict1 ={"city":"","name":"yass","region":"","zipcode":"",
"phone":"","address":"","tehsil":"", "planet":"mars"}
blacklist = set(("planet","tehsil"))
new = {k:dict1[k] for k in dict1 if k not in blacklist}
</code></pre>
<p>这给了我没有钥匙的字典:“税收区”,“行星”
我也试过下面的方法,但没有成功。</p>
<pre><code>new = {k:dict1[k] for k in dict1 if k not in blacklist and dict1[k] is not None}
</code></pre>
<p>生成的dict应该如下所示:</p>
<pre><code>new = {"name":"yass"}
</code></pre>
<p>只需测试<code>dict1[k]</code>的真值(而不是<code>is None</code>)。</p>
<pre><code>new = {k:dict1[k] for k in dict1 if k not in blacklist and dict1[k]}
</code></pre>