Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “如何检查”;“已设置”;及;是空的吗;?_Python_Python 3.x - Fatal编程技术网

Python “如何检查”;“已设置”;及;是空的吗;?

Python “如何检查”;“已设置”;及;是空的吗;?,python,python-3.x,Python,Python 3.x,我正在从PHP过渡到Python。在PHP中,isset()和empty()可以轻松帮助您确定是设置了数组键(Python中的字典键)还是为空(false) 在Python3中,有没有一种简单的方法可以查看字典键是设置的还是空的?我注意到一些解决方案可以让你找到各种尝试/例外捕获 PHP isset()函数 确定是否将某个变量视为已设置,这意味着是否声明了某个变量且该变量不同于NULL PHP empty()函数 确定变量是否为空。如果变量不存在或其值等于FALSE,则认为该变量为空 您可以

我正在从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