python过滤基于键值的词典列表
发布时间:2020-12-20 10:32:22 所属栏目:Python 来源:网络整理
导读:我有一个字典列表,每个字典都有一个(比如说)’type’的键,它可以有’type1′,’type2’等值.我的目标是将这些字典过滤成相同字典的列表但只有某种“类型”的那些.我想我只是在努力解决列表/词典理解问题. 所以示例列表看起来像: exampleSet = [{'type':'typ
我有一个字典列表,每个字典都有一个(比如说)’type’的键,它可以有’type1′,’type2’等值.我的目标是将这些字典过滤成相同字典的列表但只有某种“类型”的那些.我想我只是在努力解决列表/词典理解问题.
所以示例列表看起来像: exampleSet = [{'type':'type1'},{'type':'type2'},{'type':'type3'}] 我有一个关键值列表.比方说: keyValList = ['type2','type3'] 预期结果列表的位置如下: expectedResult = [{'type':'type2'},{'type':'type3'}] 我知道我可以通过一组for循环来做到这一点.我知道必须有一个更简单的方法.我发现这个问题有很多不同的风格,但没有一个真正适合这个问题,并回答了这个问题.我会尝试答案……但他们并没有那么令人印象深刻.可能最好让它开放结束.任何援助将不胜感激. 解决方法
你可以尝试列表comp
>>> exampleSet = [{'type':'type1'},{'type':'type3'}] >>> keyValList = ['type2','type3'] >>> expectedResult = [d for d in exampleSet if d['type'] in keyValList] >>> expectedResult [{'type': 'type2'},{'type': 'type2'},{'type': 'type3'}] 另一种方法是使用 >>> list(filter(lambda d: d['type'] in keyValList,exampleSet)) [{'type': 'type2'},{'type': 'type3'}] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |