在Python中从字典中删除键

时间:2016-02-27 23:43:30

标签: python

我想从Python字典中删除一些键。密钥以列表形式提供;我的代码到目前为止:

my_keys = [2,4]
my_dict = {1:"aaaa" , 2: "bbb", 3:"ccc", 4:"ddd" }

for number in my_keys:
    for key, value in my_dict.items():
            if key == number:
                del my_dict[(key)]

3 个答案:

答案 0 :(得分:3)

你可以使用dict理解,如下:

{x:y for x,y in my_dict.items() if x not in my_keys}

正如e0k和njzk2在评论中建议的那样,如果您乐意修改现有词典,以下内容会更好:

for key in my_keys:
    try:
        del my_dict[key]
    except KeyError:
        pass # Key wasn't in the dictionary at all.

答案 1 :(得分:1)

以下是您如何做到这一点:

aerodial.com

作为旁注:要删除密钥并获取值,请使用>>> my_keys = [2,4] >>> my_dict = {1:"aaaa" , 2: "bbb", 3:"ccc", 4:"ddd" } >>> for key in my_keys: ... del my_dict[key] ... >>> my_dict {1: 'aaaa', 3: 'ccc'}

dict.pop

答案 2 :(得分:1)

您可以使用步长为2的范围,然后删除范围中每个值的每个键。您也可以使用map,这是一个很棒的功能。

map(my_dict.pop, [2,4])

如果您想捕获键不在字典中的错误,请使用lambda函数:

map(lambda x: my_dict.pop(x, None), [2,4])