Python中为什么[]为[]为False
我对这个逻辑有点困惑。当以下内容在python中为True时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运算符检查两个操作数是否引用同一对象 ==运算符比较两个操作数的值并检查值
print('' is '') #True
print('' == '') #True
print([] == []) #True
print({} == {}) #True
但为什么这些说法是错误的呢
print([] is []) #False
print({} is {}) #False
==运算符比较两个操作数的值并检查值是否相等。而is运算符检查两个操作数是否引用同一对象
==运算符比较两个操作数的值并检查值是否相等。而is运算符检查两个操作数是否引用同一对象
类似的问题类似的问题如果比较对象,那么为什么为真?@Vanjith:因为两个表达式的计算结果恰好是同一个对象。这是允许的,但对于不可变对象不是必需的。那么,如果比较对象,为什么为True?@Vanjith:因为两个表达式的计算结果恰好是同一个对象。这是允许的,但对于不可变对象不是必需的。