1. 程式人生 > >Python中 == 表示式和 is 的區別

Python中 == 表示式和 is 的區別

x == y表示兩個物件的值相同,x is y表示兩者是同一個物件

例1:
x和y是兩個列表,它們的值相同,但不是同一個物件
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x == y
True
>>> x is y
False
>>>

例2: x和y是同一個物件
>>> x = [1, 2, 3]
>>> y = x
>>> x is y
True

例3: 字典是無序的,所以x和y的值相同
>>> x = {1:2, 4:8}
>>> y = {4:8, 1:2}

>>> x is y
False
>>> x == y
True

例4: 元組是有序的,所以x和y的值不同:
>>> x = (1,2,3)
>>> y = (3,2,1)
>>> x == y
False
>>> x is y
False

提示:不要用is比較數值或者字串,因為結果不可預測,比如:
>>> x = 3
>>> y = 3
>>> x == y
True
>>> x is y
True
>>> id(x)
35157960L
>>> id(y)

35157960L

如果x is y,即兩者是同一物件,那麼兩者記憶體地址一樣,即id(x) == id(y)