Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python安全字典密钥访问_Python_Dictionary_Logical Operators - Fatal编程技术网

Python安全字典密钥访问

Python安全字典密钥访问,python,dictionary,logical-operators,Python,Dictionary,Logical Operators,我正在寻找一种方便、安全的python字典密钥访问方法。我想到了三种方法 data={'color':'yellow'} #接近一号 颜色_1=无 如果数据中有“颜色”: 颜色_1=数据['color'] #方法二 color_2=数据['color'],如果数据中的'color',则其他无 #方法三 def安全(obj,钥匙): 如果输入obj: 返回obj[键] 其他: 一无所获 color_3=安全(数据“color”) #输出 打印(“{},{},{}”。格式(颜色1,颜色2,颜色3))

我正在寻找一种方便、安全的python字典密钥访问方法。我想到了三种方法

data={'color':'yellow'}
#接近一号
颜色_1=无
如果数据中有“颜色”:
颜色_1=数据['color']
#方法二
color_2=数据['color'],如果数据中的'color',则其他无
#方法三
def安全(obj,钥匙):
如果输入obj:
返回obj[键]
其他:
一无所获
color_3=安全(数据“color”)
#输出
打印(“{},{},{}”。格式(颜色1,颜色2,颜色3))
当然,这三种方法都有效。但是,有没有一种简单的开箱即用的方法来实现这一点,而不必使用过多的
if
s或自定义函数


我认为应该有,因为这是一个非常常见的用法。

您错过了规范方法:

如果钥匙丢失,它将返回
None
。可以将其他默认值设置为第二个参数:

color_2 = data.get('color', 'red')
退房。如果在字典中找不到键,您可以提供一个返回值,否则它将返回
None

>>> data = {'color': 'yellow'}
>>> data.get('color')
'yellow'
>>> data.get('name') is None
True
>>> data.get('name', 'nothing')
'nothing'

您的意思是,如果缺少密钥,您希望返回默认值?然后使用dict.get()。
>>> data = {'color': 'yellow'}
>>> data.get('color')
'yellow'
>>> data.get('name') is None
True
>>> data.get('name', 'nothing')
'nothing'