码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-12 11:20:16      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:python   对象   

‘==’的意思是判断两个对象的内容是否一样,而‘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]
>>> 

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’了


版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:python   对象   

原文地址:http://blog.csdn.net/xiaopangxia/article/details/46848513

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!