对象的值比较(==)和引用判别(is)
==运算符判断 两个变量指向的对象的值是否相同
is 运算符判断 两个变量是否指向同一对象,同一个内存地址
即:
is ---------判断方法:id
== --------- 判断方法:value
#a和b为 数值类型
>>> a = 2
>>> b = 2
>>> id(a) #输出:140714022527856
>>> id(b) #输出:140714022527856
>>> a == b #输出:True
>>> a is b #输出:True
#a和b为 字符串类型
>>> a = '哈哈哈'
>>> b = '哈哈哈'
>>> id(a) #输出:2722792175248
>>> id(b) #输出:2722792175344
>>> a == b #输出:True
>>> a is b #输出:False
#a和b为 元组类型
>>> a = (1,2,3)
>>> b = (1,2,3)
>>> id(a) #输出:2722792543360
>>> id(b) #输出:2722792543504
>>> a == b #输出:True
>>> a is b #输出:False
#a和b为 list类型
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> id(a) #输出:2722792586632
>>> id(b) #输出:2722792587144
>>> a == b #输出:True
>>> a is b #输出:False
#a和b为 dict类型
>>> a = {'name':'小明','age':20}
>>> b = {'name':'小明','age':20}
>>> id(a) #输出:2722792570384
>>> id(b) #输出:2722792569808
>>> a == b #输出:True
>>> a is b #输出:False
#a和b为 set类型
>>> a = set([1,2,3])
>>> b = set([1,2,3])
>>> id(a) #输出:2722792367048
>>> id(b) #输出:2722792366824
>>> a == b #输出:True
>>> a is b #输出:False
可变数据类型与不可变数据类型
不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变
数据类型 | 可变/不可变 |
---|---|
整型 | 不可变 |
字符串 | 不可变 |
元组 | 不可变 |
列表 | 可变 |
字典 | 可变 |
集合 | 可变 |