我有一个字典列表,每个字典都有一个(比如说)’type’的键,它可以有’type1′,’type2’等值.我的目标是将这些字典过滤成相同字典的列表但只有某种“类型”的那些.我想我只是在努力解
所以示例列表看起来像:
exampleSet = [{'type':'type1'},{'type':'type2'},{'type':'type2'}, {'type':'type3'}]
我有一个关键值列表.比方说:
keyValList = ['type2','type3']
预期结果列表的位置如下:
expectedResult = [{'type':'type2'},{'type':'type2'},{'type':'type3'}]
我知道我可以通过一组for循环来做到这一点.我知道必须有一个更简单的方法.我发现这个问题有很多不同的风格,但没有一个真正适合这个问题,并回答了这个问题.我会尝试答案……但他们并没有那么令人印象深刻.可能最好让它开放结束.任何援助将不胜感激.
你可以尝试列表comp>>> exampleSet = [{'type':'type1'},{'type':'type2'},{'type':'type2'}, {'type':'type3'}] >>> keyValList = ['type2','type3'] >>> expectedResult = [d for d in exampleSet if d['type'] in keyValList] >>> expectedResult [{'type': 'type2'}, {'type': 'type2'}, {'type': 'type3'}]
另一种方法是使用filter
>>> list(filter(lambda d: d['type'] in keyValList, exampleSet)) [{'type': 'type2'}, {'type': 'type2'}, {'type': 'type3'}]