我想从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)]
答案 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])