首页 > 解决方案 > 根据 dict.values() 删除字典元素

问题描述

如果字符串 'email' 不在 dict 值中,我想删除相应的元素,所以我做了以下操作:

[ my_dict.pop(k) for k , val in my_dict.items() if 'email' not in val ]

那么有更好的解决方案吗?
像上面那样编写一长串代码还是执行以下操作更好:

    for k , val in my_dict.items():
        if 'email' not in val:
            my_dict.pop(k)

标签: pythonpython-2.7

解决方案


如果您不打算使用列表,请不要使用列表推导!同样,dict.pop如果您不打算使用弹出的值,请不要使用。覆盖内置名称(如dict. 更多的pythonic是:

for key, val in my_dict.items():
    if 'email' not in val:
        del my_dict[key]

推荐阅读