Removing keys from dictionary in Python
本问题已经有最佳答案,请猛点这里访问。
我想从Python字典中删除一些键。钥匙在列表中提供;我的代码到目前为止:
1 2 3 4 5 6 7 | 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)] |
你可以使用听写理解,比如:
1 | {x:y for x,y in my_dict.items() if x not in my_keys} |
正如e0k和njzk2在评论中所建议的,如果您愿意修改现有的字典,那么下面的工作会更好:
1 2 3 4 5 | for key in my_keys: try: del my_dict[key] except KeyError: pass # Key wasn't in the dictionary at all. |
可以使用步骤为2的范围,然后删除范围中每个值的每个键。您也可以使用
1 | map(my_dict.pop, [2,4]) |
如果您想捕捉一个键不在字典中的错误,可以使用lambda函数,这样:
1 | map(lambda x: my_dict.pop(x, None), [2,4]) |
以下是您的方法:
1 2 3 4 5 6 7 | >>> 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'} |
旁注:要删除键并获取值,请使用
1 2 3 4 5 | >>> x = my_dict.pop(1) >>> x 'aaaa' >>> my_dict {3: 'ccc'} |