‘==’的意思是判断两个对象的内容是否一样,而‘is’则是判断两个对象是否为同一个对象。同样的道理适用于‘!=’和‘is not’
例如:
>>> x = y = [1, 2, 3] >>> z = [1, 2, 3] >>> x == y True >>> x == z True >>> x is y True >>> x is z False >>> x.reverse() >>> x [3, 2, 1] >>> y [3, 2, 1] >>>
而下面:
>>> 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']] >>>
第二个b_list里实际上就只有一个对象,引用了10次,所以改了b_list[0][0],所有值都变为‘yyy’了
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/xiaopangxia/article/details/46848513