1. is运算符判断的是同一性而不是相等性。
#x和y都绑定到同一个列表,而z被绑定在另外一个具有相同数值和顺序的列表上
x = y = [1, 2, 3]
z = [1, 2, 3]
x == y #True
x == z #True x is y #True
x is z #False
2. 避免将is运算符用于比较类似数值和字符串这类不可变值。[缓存原因]
x = 1
y = 1
x is y #True x = 'hello'
y = 'hello'
x is y #True
1. is运算符判断的是同一性而不是相等性。
#x和y都绑定到同一个列表,而z被绑定在另外一个具有相同数值和顺序的列表上
x = y = [1, 2, 3]
z = [1, 2, 3]
x == y #True
x == z #True x is y #True
x is z #False
2. 避免将is运算符用于比较类似数值和字符串这类不可变值。[缓存原因]
x = 1
y = 1
x is y #True x = 'hello'
y = 'hello'
x is y #True