如果缺少键,则在 Python 字典中设置默认值
Setting default value in Python dictionary if key is missing
给定一个字典,我需要检查某些键是否存在,如果存在,我需要获取它们的值,如果不存在,那么我必须设置一个默认值。我目前正在使用此代码:
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'
这当然很痛苦,我想我可以遍历整个字典键并检查是否存在感兴趣的键,如果不存在,则设置它们。所以问题是,有没有更好的方法来做到这一点?我的意思是,通过一个大字典,检查键,如果它们不存在,将它们设置为 'Not Available'.
你可以使用 dict.<b>get</b>(<i>key</i>[, <i>default</i>])
:
>>> d = {'key1': 'apple'}
>>> d['key1']
'apple'
>>> d.get('key2', 'Not Available')
'Not Available'
可以使用set_default
方法
my_dict = {"a":1,"b":2}
如果键存在,则不会对现有值进行任何更改
my_dict.setdefault('a', 3)
print(my_dict) #{'a': 1, 'b': 2}
如果不存在,则添加key-value对
my_dict.setdefault('c', 3)
print(my_dict) #{'a': 1, 'b': 2, 'c': 3}
遍历多个键:
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'}
给定一个字典,我需要检查某些键是否存在,如果存在,我需要获取它们的值,如果不存在,那么我必须设置一个默认值。我目前正在使用此代码:
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'
这当然很痛苦,我想我可以遍历整个字典键并检查是否存在感兴趣的键,如果不存在,则设置它们。所以问题是,有没有更好的方法来做到这一点?我的意思是,通过一个大字典,检查键,如果它们不存在,将它们设置为 'Not Available'.
你可以使用 dict.<b>get</b>(<i>key</i>[, <i>default</i>])
:
>>> d = {'key1': 'apple'}
>>> d['key1']
'apple'
>>> d.get('key2', 'Not Available')
'Not Available'
可以使用set_default
方法
my_dict = {"a":1,"b":2}
如果键存在,则不会对现有值进行任何更改
my_dict.setdefault('a', 3)
print(my_dict) #{'a': 1, 'b': 2}
如果不存在,则添加key-value对
my_dict.setdefault('c', 3)
print(my_dict) #{'a': 1, 'b': 2, 'c': 3}
遍历多个键:
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'}