今天在编程的时候,判断List是否为空,我用了一个if list is None:
来判断,发现List为空的时候,依然执行不了:
后面的语句。然后修改为if not x:
就可以了,我们来探究一下,这两者的区别。
先看一段例子:
>>> x = []
>>> y = None
>>> x is None
False
>>> y is None
True
>>> not x
True
>>> not y
True
>>>
我想判断x是否为None,但是却把x==[]
的情况也判断进来了,因此if x is None:
无法区分两种情况。
在Python中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于False,因此if not x:
可以适用。
python中的not具体表示是什么,举个例子说一下:
在python中not是逻辑判断词,用于布尔型True和False,not True为False,not False为True,以下是几个常用的not的用法:
(1) not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句。比如:
a = False
if not a: # (这里因为a是False,所以not a就是True)
print "hello"
这里就能够输出结果hello
(2) 判断元素是否在列表或者字典中,if a not in b,a是元素,b是列表或字典,这句话的意思是如果a不在列表b中,那么就执行冒号后面的语句,比如:
a = 5
b = [1, 2, 3]
if a not in b:
print "hello"
这里也能够输出结果hello
总结:
not x
意思相当于:
if x is false:
then True
else:
False