检查键是否在字典中且值是否为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,但不是空字符串。