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中为什么[]为[]为False_Python_Python 3.x_Python 2.7 - Fatal编程技术网

Python中为什么[]为[]为False

Python中为什么[]为[]为False,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我对这个逻辑有点困惑。当以下内容在python中为True时 print('' is '') #True print('' == '') #True print([] == []) #True print({} == {}) #True 但为什么这些说法是错误的呢 print([] is []) #False print({} is {}) #False ==运算符比较两个操作数的值并检查值是否相等。而is运算符检查两个操作数是否引用同一对象 ==运算符比较两个操作数的值并检查值

我对这个逻辑有点困惑。当以下内容在python中为True时

print('' is '')  #True
print('' == '')  #True
print([] ==  []) #True
print({} ==  {}) #True
但为什么这些说法是错误的呢

print([] is  []) #False
print({} is  {}) #False
==运算符比较两个操作数的值并检查值是否相等。而is运算符检查两个操作数是否引用同一对象

==运算符比较两个操作数的值并检查值是否相等。而is运算符检查两个操作数是否引用同一对象

类似的问题类似的问题如果比较对象,那么为什么为真?@Vanjith:因为两个表达式的计算结果恰好是同一个对象。这是允许的,但对于不可变对象不是必需的。那么,如果比较对象,为什么为True?@Vanjith:因为两个表达式的计算结果恰好是同一个对象。这是允许的,但对于不可变对象不是必需的。