加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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'}]

另一种方法是使用filter

>>> list(filter(lambda d: d['type'] in keyValList,exampleSet))
[{'type': 'type2'},{'type': 'type3'}]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读