首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据列表中的元素从Python字典中删除元素?

如何根据列表中的元素从Python字典中删除元素?
EN

Stack Overflow用户
提问于 2016-01-03 19:43:05
回答 4查看 2.7K关注 0票数 4

我有一个元组列表:

代码语言:javascript
运行
复制
lst=[(6, 'C'), (6, 'H'), (2, 'C'), (2, 'H')]

还有一本字典:

代码语言:javascript
运行
复制
dct={'6C': (6, 'C'), '6H': (6, 'H'), '9D': (9, 'D'), '10D': (10, 'D'), '11S': (11, 'S'), '2C': (2, 'C'), '2H': (2, 'H')}

如何从字典中删除列表中的元素?在这个例子中,我想要的输出是:

代码语言:javascript
运行
复制
dct2={'9D': (9, 'D'), '10D': (10, 'D'), '11S': (11, 'S')}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-03 19:45:54

我会使用字典理解来用列表中找不到的值映射键:

代码语言:javascript
运行
复制
new_dict = {k: v for k, v in old_dict.items() if v not in the_list} # filter from the list
票数 8
EN

Stack Overflow用户

发布于 2016-01-03 19:45:01

如果您正在使用Python 2,请尝试如下:

代码语言:javascript
运行
复制
for key, value in dct.items():
    if value in lst:
        del dct[key]

编辑:

在Python 2和3中工作的解决方案:

代码语言:javascript
运行
复制
dict((key, value) for key, value in dct.items() if value not in lst)
票数 3
EN

Stack Overflow用户

发布于 2016-01-03 20:06:27

使用 function from toolz

代码语言:javascript
运行
复制
from toolz import valfilter
valfilter(lst.__contains__, dct)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34580845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档