擅长:python、mysql、java
<p>您需要将<em>条件测试中的<em>移到列表理解中的<em>for</em>关键字之前,并且使用<code>get</code>将更安全,如果您不确定列表中的所有词典是否都有关键字<code>abc</code>,则返回默认值而不是引发错误:</p>
<pre><code>listOfDicts = [{'ID': 1, 'abc': {'123': 'foo'}}, {'ID': 7, 'abc': {'123':'foo','456': 'bar'}}]
sampleFilterList = ['123', '456']
[d for d in listOfDicts if all(s in d.get('abc', {}) for s in sampleFilterList)]
# [{'ID': 7, 'abc': {'123': 'foo', '456': 'bar'}}]
</code></pre>
<p>或者如果使用@DYZ的集合,则可以使用<code>issubset</code>:</p>
^{pr2}$