擅长:python、mysql、java
<p>解决这个问题的一种方法是,更改最后一行:</p>
<pre><code>print(key, len([item for item in value if item]))
</code></pre>
<p>所以你的完整代码:</p>
<pre><code>ITEMS = {
'John greased ': ['axle', 'wheel', 'wheels', 'wheel', 'engine', ''],
'Paul alleged ': ['truth', 'crime', 'facts', 'infidelity', 'incident', ''],
'Tracy freed ': ['animals', 'fish', 'slaves', 'slaves', 'slaves', 'pizza'],
'Lisa plowed ': ['field', 'field', '', '', '', ''],
}
for key, value in ITEMS.items():
#print value
print(key, len([item for item in value if item]))
</code></pre>
<p>也可以将<code>filter</code>与<code>bool</code>一起使用:</p>
<pre><code>print(key, len(filter(bool, value)))
</code></pre>
<p>所以,循环:</p>
<pre><code>for key, value in ITEMS.items():
#print value
print(key, len(filter(bool, value)))
</code></pre>
<p>您需要像Python 3中的<code>print(key, len(list(filter(bool, value))))</code>那样,在<code>filter</code>上应用<code>list</code>。</p>