如果缺少键,则在 Python 字典中设置默认值

Bru*_*ner 0 dictionary python-3.x

给定一个字典,我需要检查某些键是否存在,如果存在,我需要获取它们的值,如果不存在,那么我必须设置一个默认值。我目前正在使用这段代码:

if 'key1' in my_dict:
    pass
else:
    my_dict['key1'] = 'Not Available'

if 'key2' in my_dict:
    pass
else:
    my_dict['key2'] = 'Not Available'

if 'key3' in my_dict:
    pass
else:
    my_dict['key3'] = 'Not Available'

if 'key4' in my_dict:
    pass
else:
    my_dict['key4'] = 'Not Available'
Run Code Online (Sandbox Code Playgroud)

这当然很痛苦,我想我可以迭代整个字典键并检查感兴趣的键是否存在,如果不存在,则设置它们。那么问题是,有没有更好的方法来做到这一点?我的意思是,浏览一本大字典,检查键,如果它们不存在,请将它们设置为“不可用”。

Sru*_*i V 5

你可以使用该setdefault方法

my_dict = {"a":1,"b":2}
Run Code Online (Sandbox Code Playgroud)

如果某个键存在,则不会更改现有值

my_dict.setdefault('a', 3)
print(my_dict) #{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)

如果不存在则添加键值对

my_dict.setdefault('c', 3)
print(my_dict) #{'a': 1, 'b': 2, 'c': 3}
Run Code Online (Sandbox Code Playgroud)

循环遍历多个键:

my_dict = {"a":1,"b":2}
keys = ["a","c","d"]
for key in keys:
    my_dict.setdefault(key, "Not Available")

print(my_dict) #{'a': 1, 'b': 2, 'c': 'Not Available', 'd': 'Not Available'}
Run Code Online (Sandbox Code Playgroud)