python学习笔记——‘is’和‘==’的区别

来源:互联网 发布:智能黑科技软件 编辑:程序博客网 时间:2024/05/16 18:46

‘==’的意思是判断两个对象的内容是否一样,而‘is’则是判断两个对象是否为同一个对象。同样的道理适用于‘!=’和‘is not’


例如:

>>> x = y = [1, 2, 3]>>> z = [1, 2, 3]>>> x == yTrue>>> x == zTrue>>> x is yTrue>>> x is zFalse>>> x.reverse()>>> x[3, 2, 1]>>> y[3, 2, 1]>>> 

x与y实为同一对象,对x做了翻转,y的值也是翻转了的

而下面:


>>> a_list = ['xxx'] * 10>>> a_list['xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx']>>> a_list[0] = 'yyy'>>> a_list['yyy', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx', 'xxx']
>>> b_list = [['xxx']] * 10>>> b_list[['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx'], ['xxx']]>>> b_list[0][0] = 'yyy'>>> b_list[['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy'], ['yyy']]>>> 

第一个a_list里实为10个对象,修改了第一个字符串那就是修改了第一个字符串。

第二个b_list里实际上就只有一个对象,引用了10次,所以改了b_list[0][0],所有值都变为‘yyy’了


0 0
原创粉丝点击