抛弃dictkey的方式访问Python字典的值
作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流
从各种教程中,学到访问字典的方式,基本都是dictkey这样的方式,比如:
d = {'apple':4, 'orange':5, 'pear':6}
x = d['apple'] # 4
y = d['orange'] # 5
z = d['pear'] # 6
通过dkey来获取字典d中key对应的值。
如果访问的key不存在呢?比如:
d = {'apple':4, 'orange':5, 'pear':6}
a = d['pineapple']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[202], line 3
1 d = {'apple':4, 'orange':5, 'pear':6}
----> 3 a = d['pineapple']
KeyError: 'pineapple'
如果key不存在,dkey会抛出一个KeyError类型的异常,这将导致python程序崩溃,这是非常令人烦恼的事情。
如果是在运行一个离线任务,需要跑好几个小时,但是在运行几个小时后,程序突然崩溃了,抛出了一个KeyError,这会导致之前的结果全都失效,需要重跑。
如果是一个游戏,打boss进行了一半,一个异常导致整个游戏崩溃,也是用户不可接受的事情。
除了异常的处理,我们尽可能的,应该用非抛出异常的方式,处理各种可能性。
我们可以通过判断key是否存在的方式,先进行访问再调用,比如:
d = {'apple':4, 'orange':5, 'pear':6}
if 'pineapple' in d:
a = d['pineapple']
else:
a = ""
通过这样的方式,可以避免访问到不存在的key,缺点就是,需要每次都要先检查在使用,并根据不同的类型设置不同的默认值。
还有一种方式,就是dict.get()方法,实现了上面的需要。如果key不存在,不会抛出异常,会返回一个None,或者可以指定默认值。
作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流
d = {'apple':4, 'orange':5, 'pear':6}
x = d.get('apple') # 4
y = d.get('orange') # 5
z = d.get('pear') # 6
a = d.get('pineapple') # None
通过上面的例子,可以看出,我们完美的解决了上面出现的问题。
使用dict.get()有如下好处:
我们还可以指定dict.get()方法的默认值,dict.get(key, defaultValue),比如:
d = {'apple':4}
x = d.get('apple') # 4
y = d.get('orange', 100) # 100
z = d.get('pear', 3.14159) # 3.14159
如果key存在,实际值被返回。
如果key不存在,设置的默认值被返回,就是第二个参数。
作者: quantgalaxy@outlook.com
blog: https://blog.csdn.net/quant_galaxy
欢迎交流
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。