检查键是否在字典中且值是否为None的大多数python方法
我正在使用检查键是否在字典中且值是否为None的大多数python方法,python,dictionary,Python,Dictionary,我正在使用flask和flask\u restful并具有类似 self.reqparse = reqparse.RequestParser() self.reqparse.add_argument('OptionalArg', type=str, default=None) self.reqparse.add_argument('OptionalArg2', type=str, default=None) self.__args = self.reqparse.parse_args() if
flask
和flask\u restful
并具有类似
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument('OptionalArg', type=str, default=None)
self.reqparse.add_argument('OptionalArg2', type=str, default=None)
self.__args = self.reqparse.parse_args()
if 'OptionalArg' in self.__args and self.__args['OptionalArg'] is not None:
# Do something with the OptionalArg only
pass
else:
# Do something with all the arguments that are not None.
pass
虽然这个问题在几年前就被问到了,但我想知道是否有一种更为通俗的方法来检查键是否在字典中,而值是否不是无
我提到flask
和flask\u restful
的原因是为了在我的字典中使用None
值来证明键的初始化是正确的。只需使用dict.get
方法和可选的默认
参数即可。如果字典d
中存在key
,则返回d[key]
,否则返回default
值:
In [1]: d = {1: 'A', 2: None}
In [2]: d.get(1)
Out[2]: 'A'
In [3]: d.get(2)
In [4]: d.get(1) is not None
Out[4]: True
In [5]: d.get(2) is not None
Out[5]: False
In [6]: d.get(3) is not None
Out[6]: False
对于您的情况:
if self.__args.get('OptionalArg') is not None:
# Do something with the OptionalArg only
pass
else:
# Do something with all the arguments that are not None.
pass
如果self.\uu args.get('OptionalArg')
实际上工作得很好。谢谢你的快速回答。在学习d.get()之前,最好将.get的结果赋给局部变量,而不是直接在if语句中。否则你必须得到它twice@EduardDaduya,永远欢迎你。请注意,如果self.\uu args.get('OptionalArg')
也不会传递任何值,可以转换为False
(即0
,'
,等等)。很快我明白了,这就是为什么我必须明确声明不是None
@维姆,你能详细介绍一下吗?我正在读atm文档。@如果self.get('OptionalArg')不在(None,,,,,,。
如果我还想包含空字符串,请使用pythonic?在某些情况下,我期望值为False和0,但不是空字符串。