<p>我需要某种循环或过滤器来删除每个不包含字符串“id”的条目</p>
<pre><code>someDict = { 'id1': [('id1'), ('book'), ('sauce'), ('pencil')],
'id2': [('id2'), ('id4'), ('id5'), ('pens') , ('id6'), ('stuff')],
'id3': [('id3'), ('id81'), ('van'), ('garage')]}
</code></pre>
<p>因此,之后,它将看起来像这样:</p>
<pre><code>someDict = { 'id1': [('id1')],
'id2': [('id2'), ('id4'), ('id5'), ('id6')],
'id3': [('id3'), ('id81') ]}
</code></pre>
<p>我简直是不知所措。我已经想了三个小时了。任何帮助都将不胜感激</p>
<p>我试过这个,但我不擅长使用这样的过滤器。它应该删除字典中没有“id”的所有内容,但它不起作用</p>
<p><code>#someDict = { k : v for k, v in someDict.items() if 'id' in v }</code></p>
<p>然后,我试图找出一个循环,但也无法让它工作</p>
<pre><code>for key, value in someDict.items():
for x in value:
if not "id" in x:
value.remove(x)```
</code></pre>
<p>试试这个:</p>
<pre><code>for value in someDict.values():
for i in value:
if i[0:2] != 'id':
value.remove(i)
</code></pre>
<p>您不需要迭代完整的项(键和值),只需获取所有值,然后检查每个值元素的条件</p>