擅长:python、mysql、java
<p>这里有几个问题:</p>
<ol>
<li><p>在执行<code>for i in data</code>时,因为<code>data</code>是词典列表,所以<code>i</code>现在是词典。所以,你的台词<code>i == (key, x)</code>没有意义。它应该看起来像:
<code>(key, x) in i.items()</code>,或与<code>i.get(key) == x</code>一起使用<code>get</code>方法。</p></li>
<li><p>您希望返回具有此对的词典列表,因此您希望在<code>result</code>列表中附加<code>i</code>。所以你的行<code>result.append(key, x)</code>应该是<code>result.append(i)</code></p></li>
<li><p>这里的<code>append</code>缩进是错误的。如果<code>if</code>子句是<code>True</code></p></li>
</ol>
<p>所以,它应该看起来像:</p>
<pre class="lang-py prettyprint-override"><code>def filterIn(data, key, x):
result = []
for i in data:
if i.get(key) == x:
result.append(i)
return i
</code></pre>
<p>可简称为:</p>
<pre class="lang-py prettyprint-override"><code>def filterIn(data, key, x):
return [i for i in data if i.get(key) == x]
</code></pre>