基本上,这是从我试图找出dict中是否存在索引时遇到的问题开始的:
if collection[ key ]: # if exist
#do this
else: # if no exist
#do this
但是当索引真的不存在时,它会给我一个键错误。 所以,阅读Python文档。如果定义了缺失(),则不会抛出键错误。在
^{pr2}$上面终端上的代码告诉我:
ghelo@ghelo-Ubuntu:~/Music$ python __arrange__.py
File "__arrange__.py", line 16
def allArts.__missing__():
^
SyntaxError: invalid syntax
那么,如何正确地做这件事呢? 顺便说一句,我需要在这方面使用Python2.7。在Python3上运行有什么区别吗?在
一些答案已经表明了你在真实情况下应该做些什么,但是缺失也可以满足你的要求。在
如果您想使用它,您需要将dict子类化
然后您可以创建一个:
^{pr2}$并通过
您可以这样做:
或者,正如@sdolan建议的那样,您可以使用
^{pr2}$.get
方法,如果不存在,它将返回默认值(可选的第二个参数)。在如果您想使用
__missing__
,您可以将其应用于扩展dict的类(在本例中):输出
^{4}$可以通过使用try..处理KeyError异常来检查key是否存在,如下所示除外。在
这种编码风格被称为
EAFP
,这意味着“请求原谅比请求许可更容易”http://docs.python.org/glossary.html#term-eafp另一种方法是使用
^{pr2}$get
方法,如果找不到密钥,它将默认返回None相关问题 更多 >
编程相关推荐