<p>我有一个类似这样的字典列表,但是大约有500个条目:</p>
<pre><code>listOfDicts = [{'ID': 1, 'abc': {'123': 'foo'}}, ... {'ID': 7, 'abc': {'123':'foo','456': 'bar'}}]
sampleFilterList = ['123', '456']
</code></pre>
<p>我试图过滤列表中的所有结果,其中sampleFilterList中的所有值都在键“abc”中</p>
<p>结果应该是一个列表:</p>
^{pr2}$
<p>我试过<code>[i for i in listOfDicts if a for a in sampleFilterList in i['abc']]</code>,但是我得到了<code>UnboundLocalError: local variable 'a' referenced before assignment</code></p>
<p>这是一个包含嵌套列表理解的工作版本。您的问题是<code>a for a in...</code>是一个列表理解,需要在构造新列表时使用。在</p>
<pre><code>[i for i in listOfDicts if [a for a in sampleFilterList if a in i['abc']] == sampleFilterList]
</code></pre>