Python “如何检查”;“已设置”;及;是空的吗;?
我正在从PHP过渡到Python。在PHP中,isset()和empty()可以轻松帮助您确定是设置了数组键(Python中的字典键)还是为空(false) 在Python3中,有没有一种简单的方法可以查看字典键是设置的还是空的?我注意到一些解决方案可以让你找到各种尝试/例外捕获 PHP isset()函数 确定是否将某个变量视为已设置,这意味着是否声明了某个变量且该变量不同于NULL PHP empty()函数 确定变量是否为空。如果变量不存在或其值等于FALSE,则认为该变量为空Python “如何检查”;“已设置”;及;是空的吗;?,python,python-3.x,Python,Python 3.x,我正在从PHP过渡到Python。在PHP中,isset()和empty()可以轻松帮助您确定是设置了数组键(Python中的字典键)还是为空(false) 在Python3中,有没有一种简单的方法可以查看字典键是设置的还是空的?我注意到一些解决方案可以让你找到各种尝试/例外捕获 PHP isset()函数 确定是否将某个变量视为已设置,这意味着是否声明了某个变量且该变量不同于NULL PHP empty()函数 确定变量是否为空。如果变量不存在或其值等于FALSE,则认为该变量为空 您可以
您可以使用中的
测试字典中是否存在键:
>>> d = {'a': 'b', 'c': 'd'}
>>> 'a' in d
True
>>> 'x' in d
False
如果get中没有键,您还可以尝试查找值并获取默认值(默认情况下None
):
>>> d.get('a')
'b'
>>> d.get('x')
>>> d.get('x') is None
True
>>> d.get('x', 'y') # 'y' is the default value here
'y'
是否要检查字典中是否有某个关键字的条目?然后使用.get()
。如果不存在这些条件,它将返回None
:test\u dict
中的'test\u key'和test\u dict['test\u key']都是None
这两个用例都有简单的通用习惯用法,它们不涉及try
/,除了。很多时候,异常会更有效(try
会成功,因此您可以通过三思而后行来节省周期),但这两种样式都很常见,而且相当类似python。查找hasattr
和简单的相等比较。我不懂PHP,但我猜isset
对应于Python中的多个案例(未定义vs无)。编写依赖于变量是否存在的Python代码是非常罕见的。检查字典是否包含特定键的值是完全不同的事情。为了清楚起见,我刚刚编辑了这个问题。让我们假设字典的情况,因为这似乎是我遇到最多的一个;d、 get('x')是None
-->True
@Drako好吧,它是经过设计的。。。字典中仍设置为False值或甚至为None。如果您不想要None
,那么测试:d.get('a')不是None
。